常用排序 冒泡 快速排序

2021-07-03 15:31:08 字數 969 閱讀 3211

氣泡排序是兩個相臨位置的資料進行比較,按照邏輯從大到小還是從小到大進行調換,確定乙個數字為一趟.

•若檔案初狀為正序,則一趟起泡就可完成排序,排序碼的比較次數為n-1,且沒有記錄移動,時間複雜度是o(n)

•若檔案初態為逆序,則需要n-1趟起泡,每趟進行n-i次排序碼的比較,且每次比較都移動三次,比較和移動次數均達到最大值∶o(n2)

•起泡排序平均時間複雜度為o(n2)

public class maopao ;

int t =0;

int length = target.length;

for(int i=0;i

第1趟排序結果

5 4 3 11 8 7

第2趟排序結果

5 4 11 8 7 3

第3趟排序結果

5 11 8 7 4 3

第4趟排序結果

11 8 7 5 4 3

第5趟排序結果

11 8 7 5 4 3

第6趟排序結果

11 8 7 5 4 3

*********************最後結果*****************

11 8 7 5 4 3 2

快速排序

public class kuaipai ;

quicksort(target,0,target.length-1);

for(int a:target) }

private static void quicksort(int a, int low, int high)

while(right>left&a[left]

快速排序的時間複雜度為o(nlogn)。

當n較大時使用快排比較好,當序列基本有序時用快排反而不好。

最壞情況o(n^2)

最好情況logn * n

平均時間複雜度是o(nlogn)

常用排序(冒泡 快速 選擇)

氣泡排序思想是從頭開始掃瞄待排序的元素,在這過程中相鄰兩個元素之間進行比較,將較大的數向後移,即大數向下沉,小數向上冒 經過從頭到尾的一次掃瞄後,當前最大的數就會被移動到最後一位了,然後記下這個位置,下一次掃瞄只需掃瞄到這個位置即可 即第i次掃瞄需要比較n i次 第i次掃瞄會將乙個第i大的數排到倒數...

排序 氣泡排序 快速排序

快速排序 氣泡排序就是自上向下依次對比兩個數字,若上面的數字大於下面的數字,則兩者交換,否則不交換。這樣每次迴圈結束,未排序的最大的數就到了最下面。如陣列前兩次迴圈過程如下 快速排序的核心是partition 函式,其功能如下所示 34的位置找到後,其將陣列分成兩部分,前一部分都比34小,後一部分都...

排序 氣泡排序 快速排序

1 基本思想 將第乙個記錄的關鍵字與第二個記錄的關鍵字比較,若為逆序,則將兩個記錄交換,再向後比較。關鍵字小的漂浮,關鍵字大的下沉。2 穩定性 演算法穩定。3 時間複雜度 o n 空間複雜度 o 1 4 實現 include define n 5 陣列長度上限 intmain printf 氣泡排序...