排序演算法之選擇排序

2021-10-08 16:18:18 字數 847 閱讀 1754

選擇排序(selection-sort)是一種簡單直觀的排序演算法,實現思路有點類似插入排序,也分已排序區間和未排序區間。在未排序序列中找到最小元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。它是最穩定的排序演算法之一,因為無論什麼資料進去都是o(n2)的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。

t(n) = o(n2)

比如要排序這個陣列3 2 1 4 8,帶著問題去寫**,一定要手寫出來!,一定要手寫出來!,光看沒用

public class selectsort 

for(int i=0;i}

}return array;

}/**

* 高階版 需要注意的點在於每次迴圈找出乙個最小數和第一位進行替換

* 3,2,1,4,8

* @param array

* @return

*/public static int selectsort2(int array)

for(int i=0;i}

int temp = array[i];

array[i]=array[minindex];

array[minindex]=temp;

}return array;

}public static void main(string args) ;

selectsort2(array);

system.out.println(arrays.tostring(array));

}

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

最近在學習排序演算法,就排序演算法中的四大經典排序 氣泡排序 快速排序 選擇排序 插入排序。會出一系列的講解排序演算法的部落格。今天繼快速排序之後整理一下選擇排序。選擇排序,就是從一列未排序的陣列中先選出最小 最大 的數,放在陣列的第一位,第一位原來的數字放在最小的原來的位置,再選出第二小的數,放在...

排序演算法之選擇排序 選擇排序 堆排序

直接選擇排序 如下 下面 是一次迴圈同時挑選出最大和最小數,並將其與左右交換 選擇排序 void selectionsort int a,int len swap a min a left 如果最大數的下標在為left,證明要交換的最大數已經被 換到min小標所表示的位置,只需要將right和min...

排序演算法之選擇排序

選擇排序 在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換.第n 1趟遍歷剩下的2個資料,找出其中最小的數值與第n 1個元素交換,至此選擇排序完成。平均時間複雜度 o n2 空間複雜度 o 1 用於...