選擇排序是一種簡單直觀的排序演算法,最大的數和最小的數不斷交換,一趟排序下來,會將最大的數放在最後乙個位置,最小的數放在起始位置。第二趟排序選出次大和次小的數,依次類推。
演算法思想:
第一趟:max是9,min是0,min和begin交換,begin處為最小的數,max和end交換,end處為最大的數。begin++,end--,同理,begin處為次小的數,end處為次大的數。
當begin==max時,由於begin和min處的值交換了,此時max為最小的數,min處為最大的數,再進行max和end交換時,會出錯,因此需要max = min這一步,使得max下標為最大數的下標。
void selectsort(int* a,size_t n)
if(a[i] < a[min])
}swap(a[begin],a[min]);
if(begin == max)
swap(a[max],a[end]);
++begin;//次小...
--end; //次大... }}
void testselectsort()
; cout<
執行結果:
排序演算法介紹 氣泡排序 插入排序 選擇排序
相鄰元素兩兩進行比較,每次比較結束都得到陣列中最大的元素 氣泡排序 def bubblesort bubblelist 外層迴圈,整個陣列的長度 flag true n len bubblelist while n 內層迴圈,相鄰兩個數之間進行比較 比如四個數字兩兩比較只需要3次,所以要減一 for...
排序介紹(選擇 冒泡 快排 堆排序)
問題描述 排序問題 給出一組數字,要求按照數值的大小進行排序 例如 這組資料進行公升序的排列後的順序為 氣泡排序 是一種簡單的排序演算法,它實現的過程 不斷重複的走訪過要排列的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來,走訪數列的工作就是重複的進行,直到沒有再需要進行交換的的時候,就...
氣泡排序與選擇排序的簡單介紹與比較
氣泡排序public static void sortcompare 要遍歷的次數 第一輪 43521比四次 第二輪 45321比三次 第三輪 45321比兩次 第四輪 54321比一次 for int i 0 i arr.length 1 i for int count arr 選擇排序publi...