排序演算法2 選擇排序

2021-10-24 23:49:08 字數 648 閱讀 2824

/**

* 選擇排序

* 最好最壞時間複雜度:n^2

*/public

class

selectsort

;//預設最小值

int min =0;

//記錄最小值下標

int minindex =0;

for(

int i =

0; i < arr.length -

1; i++)}

//發現最小值改變才進行交換

if(min != arr[i]

) system.out.

println

(arrays.

tostring

(arr));

}}}

該排序演算法不論什麼資料進去,都需要進行兩次for迴圈的比較,所以它的最好、最壞和平均時間複雜度都是o(n^2)

交換位置也是通過同一工具人記憶體進行交換,所有空間複雜度是o(1)

選擇排序是不穩定的,例如,排序時第乙個5會和2進行交換,從而破壞穩定性

排序發生在記憶體中,所以排序方式是內排序

排序演算法2 選擇排序

選擇排序 selection sort 通過多次比較和交換來實現排序,其排序流程如下 1.選取陣列中最小的乙個元素和陣列的第乙個元素交換。2.接著從剩下的所有元素中選擇最小的與第二個元素交換。3.和第二步同樣的方法對剩下的所有元素進行排序,最後便可得到按照從大到小的順序排好陣列中的各元素。具體過程如...

排序演算法 2 選擇排序

簡單選擇排序是一種選擇排序。選擇排序 每趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。簡單排序很簡單,它的大致處理流程為 動態效果示意圖 舉例說明,處理過程示意圖如下所示 如圖所示,每趟排序中,將當前第i小的元素放在位置i上。c include incl...

排序演算法(2) 選擇排序 堆排序

繼續上篇的 交換排序 氣泡排序 快速排序,本篇介紹選擇排序和堆排序 一 選擇排序 非常的簡單直觀,每次找出最小或者最大的值儲存起來,繼續找剩下的值儲存起來,直達最後乙個元素。從arr 0 arr n 中找出最小的值,放在arr 0 此時arr 0 已經排好序 從arr 1 arr n 中找出最小的值...