演算法篇 十大經典排序演算法之選擇性排序

2021-10-25 10:21:43 字數 1017 閱讀 2901

選擇排序是一種簡單直觀的排序演算法,無論什麼資料進去都是 o(n²) 的時間複雜度。所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。

宣告**於菜鳥教程

public

class

test

;print

("原陣列: "

, arr)

;selectionsort

(arr)

;print

("排序後的陣列: "

, arr);}

private

static

void

selectionsort

(int

arr)}if

(i != min)}}

private

static

void

print

(string str,

int[

] arr)

else

if(i == arr.length -1)

else

} system.out.

println();}}

選擇排序很明顯的乙個特點就是和氣泡排序一樣,都是雙層迴圈。第一層迴圈就是負責拿到每乙個元素,第二層迴圈則使用第一層迴圈的資料,不斷的進行比對,找到最小的元素,然後和第一層迴圈拿到的元素進行交換。演算法過程中比對的資料集也是在不斷變小。

o(n^2)

缺點:時間複雜度太高,效率慢;最關鍵的是不穩定(舉個例子:8, 3, 6, 9, 1, 5, 11, 4, 2,這裡面的資料假如我第一次選擇,8和1的位置會互換,這個時候,8就到了9的後面。

優點:一輪比較只需要換一次位置;

很多人對冒泡和選擇這種演算法很難分清,卻是從實現和基本的過程,資料集都差不了多少。

十大經典排序演算法之 選擇排序

選擇排序的工作原理簡單直觀,和氣泡排序也有異曲同工之處,它將需要排序的陣列分為有序區和無序區,首先在無序區選出最小的數,放到有序區的末尾 有序區為從小到大排序好的陣列,因此此時從無序區選出的最小的數一定大於有序區中最大的數 以此類推,直到陣列有序。時間複雜度 平均 時間複雜度 最壞 時間複雜度 最好...

十大經典排序演算法

載自 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排...

十大經典排序演算法

不穩定排序種類為4種 快速排序 核心思想是partition操作 二分法分而治之 平均時間複雜度nlogn 希爾排序 高階版的插入排序,先把間隔較遠的子串行排序,最後間隔為1時,等同於插入排序 插入排序在序列有序時,時間複雜度常數級,所以先讓子串行總體有序,能有效降低時間複雜度 平均時間複雜度n 1...