選擇排序和對數器

2021-10-09 05:44:21 字數 1203 閱讀 9547

演算法的過程描述如下:

arr[

0~n-

1]範圍上,找到最小值所在的位置,然後把最小值交換到0位置。

arr[

1~n-

1]範圍上,找到最小值所在的位置,然後把最小值交換到1位置。

arr[

2~n-

1]範圍上,找到最小值所在的位置,然後把最小值交換到2位置。

…arr[n-

1~n-

1]範圍上,找到最小值位置,然後把最小值交換到n-

1位置。

選擇排序核心**如下

/**

* 選擇排序

** @param arr

*/public

static

void

selectsort

(int

arr)

for(

int i =

0; i < arr.length; i++)}

//進行交換

swap

(arr, i, minindex);}

}

那麼我們怎麼知道自己寫的**對不對呢?這裡牽扯出乙個概念就是對數器。

對數器簡單的理解就是:保證有乙個100%是對的驗證**,然後通過樣本量比較我們寫的演算法計算出來的結果和我們100%是對的驗證**計算出來的結果做比較。

這麼說可能不好理解,直接上**

public

static

void

main

(string[

] args)}}

}

其他**

/**

* 生成隨機數值

** @param maxsize

* @param maxvalue

* @return

*/public

static

int[

]generaterandomarray

(int maxsize,

int maxvalue)

return arr;

}

從測試結果可以看出,我們的演算法是對的

排序對數器

其實可以不用sort檢驗,排序的特點就是前乙個數比後乙個小 或大 嘛,不過完全無所謂,用這個現成的就行。include include include include include includeusing namespace std define testtime 5000 測試輪數 defin...

選擇排序(選擇排序和堆排序)

選擇排序 從序列中依次選出最小值 或者最大值 放在一側。這樣的排序叫選擇排序。這裡我們對選擇排序進行優化,一次就選出當前序列的最大值和最小值。分別放在最右端和最左端。然後left right 使得序列範圍縮小,再進行選擇最大和最小值。void selectsort int a,int n 3選擇排序...

選擇排序 選擇排序和堆排序

選擇排序 基本思想 每一趟 第i趟,i 0,1,n 2 在後面n i個待排序的資料元素集合中選出關鍵碼最小的資料元素,作為有序元素序列的第i個元素。待到第n 2趟做完,待排序元素集合中只剩下1 個元素,排序結束。一 選擇排序 每一次在一組數中選最大的放到最後,然後再在剩餘的數中選次大的數放到倒數第二...