O n 2 三大排序演算法

2021-10-03 21:10:45 字數 1050 閱讀 6368

一.如何分析乙個排序演算法?

1.執行效率

2.記憶體消耗

原地排序演算法,就是特指空間複雜度位o(1)的排序演算法。氣泡排序、插入排序和選擇排序,都是原地排序演算法。

3.穩定性

如果待排序的序列中存在值相等的元素,經過排序之後,相等元素之間原有的先後順序不變。

二.為什麼學習o(n^2)複雜度的排序演算法?

1.是基礎

2.易於實現,適用於簡單qingjing

3.特殊情況下,簡單排序效率高

4.由簡單演算法衍生出複雜演算法

6.作為子排序改進複雜的排序演算法

//選擇排序

public

static

void

selectsort

(string[

] arr)

for(

int i=

0;i1;i++)}

//1.更新此輪最小值的下標

if(min!=i)

//2.如果需要位置交換,進行交換

}}

//氣泡排序

public

static

void

bubblesort

(string[

] arr)

//一般情況

for(

int i=arr.length-

1;i>=

1;i--)}

}}

//插入排序

public

static

void

insertsort

(string[

] arr)

//一般情況

for(

int i=

1;i)//寫法2

// for(j=i-1;j>=0;j--)

// else

// }

arr[j+1]

=e;}

}

三大排序演算法

當前結果是從大到小,若想從小到大排序,將a j a j 1 改為 a j a j 1 即可 a 1,4,2,5,22,3 n len a for i in range 1 n for j in range n i if a j a j 1 a j a j 1 a j 1 a j print a 當前...

8大排序演算法

一 各個排序演算法的過程 1 直插入排序 乙個個的進行插入,直到有序序列。穩定的。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。具體實現 如下 時間複雜度 o n 2 void insertsort int a,int n 3 選擇排序 按大小順序一次選出,進行公升降排列。在要排序的一組數中,選出...

九大排序演算法

常見的排序分為兩類,一類是內部排序 直接插入排序 希爾排序 簡單選擇排序 堆排序 氣泡排序 快速排序 歸併排序 基數排序 一類是外部排序。當n較大時,應該使用時間複雜度為o nlog2n 的排序,如快速排序 堆排序 歸併排序。快排是基於比較的內部排序中,最好的方法。假設陣列為r 0 r n 1 第一...