直接選擇排序(straight select sorting) 也是一種簡單的排序方法,它的基本思想是:第一次從r[0]~r[n-1]中選取最小值,與r[0]交換,第二次從r[1]~r[n-1]中選取最小值,與r[1]交換,….,第i次從r[i-1]~r[n-1]中選取最小值,與r[i-1]交換,…..,第n-1次從r[n-2]~r[n-1]中選取最小值,與r[n-2]交換,總共通過n-1次,得到乙個按排序碼從小到大排列的有序序列·
選擇排序不是乙個穩定的排序演算法,元素容易發生位置的變化。如序列5 8 5 2 9,我們知道第一遍選擇第1個元素5會和2交換,那麼原序列中2個5的相對前後順序就被破壞了。
時間複雜度是o(n^2)。
public void zjxzsort(int arr)
}arr[smalllestindex]=arr[i];
arr[i]=min;
}}
常見排序演算法 直接選擇排序
直接選擇排序是常用選擇排序演算法之一,演算法簡單明瞭,但效能略差。直接選擇排序演算法實現的思路比較簡單,利用雙層迴圈遍歷的方式篩選出最大 或最小 值,並放置到對應的位置即可。陣列 a n 第一次排序 將第乙個元素值作為最小元素,遍歷後面的陣列,如果當前元素小於最小元素,則交換他們,直到遍歷完成,最小...
排序演算法之直接選擇排序
直接選擇排序是將整個待排序序列分為兩部分,一部分為有序 最開始有序序列為空 一部分為無序 最終無序序列為空 有序序列中的數都不大於無序序列中的數。它的過程是每次都在無序中尋找乙個最小的數,然後將其與無序序列的第乙個數交換,並併入有序序列。則有序序列長度增1,無序序列長度減1。比如 對r 0 n 陣列...
排序演算法之直接選擇排序
直接選擇排序是將整個待排序序列分為兩部分,一部分為有序 最開始有序序列為空 一部分為無序 最終無序序列為空 有序序列中的數都不大於無序序列中的數。它的過程是每次都在無序中尋找乙個最小的數,然後將其與無序序列的第乙個數交換,並併入有序序列。則有序序列長度增1,無序序列長度減1。比如 對r 0 n 陣列...