七大排序演算法 選擇排序及優化

2021-08-20 18:40:28 字數 951 閱讀 2828

在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n-1個資料,找出其中最小的數值與第二個元素交換……第n-1趟遍歷剩下的2個資料,找出其中最小的數值與第n-1個元素交換,至此選擇排序完成。

時間複雜度o(n^2) 不穩定的排序

void selectsort(int

array, int size)

if (array[min] < array[i])//如果找到的最小的數比下標i的數小,進行交換

i++;

}}int main()

; selectsort(array, 10);

for (int i = 0; i < 10; i++)

return

0;}

每次查詢時不僅找出最小值,還找出最大值,分別插到前面和後面,可以減少一半的查詢時間。

//選擇排序優化--每次找到最大最小兩個數。

void selectsortplus(int

array,int size)

if (array[max] < array[i])

if (array[min] < array[left])//如果找到的最小的left數比下標的數小,進行交換

if (array[max] > array[right])//如果找到的最大的數比下標right的數大,進行交換

}right--;

left++;

}}int main()

; selectsortplus(array, 10);

for (int i = 0; i < 10; i++)

return

0;}

七大排序演算法 選擇排序及其優化

思路 初步 public class myselectionsort selectionsort arr system.out.println arrays.tostring arr public static void selectionsort int arr swap arr,i,min pu...

七大排序演算法 快速排序及優化

快速排序 quick sort 也叫做分割槽排序,是目前應用最廣泛的排序演算法。在c 標準庫中的排序程式就被稱作qsort,因為快速排序是其實現中的最基本演算法。是一種不穩定的演算法。經過上面的 相信聰明的你們已經明白了快排的奧義 但是 這樣的排序演算法排序演算法有乙個致命的弱點,當序列已經是有序序...

七大排序演算法之選擇排序

和氣泡排序一樣,這個也是簡單而必須掌握的基礎排序演算法。遍歷陣列每個元素,若為公升序,則尋找最小的數與第乙個數交換,一趟排序結束後,最小的數字於陣列第乙個位置,然後在2 n個數中,尋找最小的元素放在第二個位置,往復下去,排序結束。固定 n n public class selectsort syst...