氣泡排序是兩個相臨位置的資料進行比較,按照邏輯從大到小還是從小到大進行調換,確定乙個數字為一趟.
•若檔案初狀為正序,則一趟起泡就可完成排序,排序碼的比較次數為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 ;平均時間複雜度是o(nlogn)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
常用排序(冒泡 快速 選擇)
氣泡排序思想是從頭開始掃瞄待排序的元素,在這過程中相鄰兩個元素之間進行比較,將較大的數向後移,即大數向下沉,小數向上冒 經過從頭到尾的一次掃瞄後,當前最大的數就會被移動到最後一位了,然後記下這個位置,下一次掃瞄只需掃瞄到這個位置即可 即第i次掃瞄需要比較n i次 第i次掃瞄會將乙個第i大的數排到倒數...
排序 氣泡排序 快速排序
快速排序 氣泡排序就是自上向下依次對比兩個數字,若上面的數字大於下面的數字,則兩者交換,否則不交換。這樣每次迴圈結束,未排序的最大的數就到了最下面。如陣列前兩次迴圈過程如下 快速排序的核心是partition 函式,其功能如下所示 34的位置找到後,其將陣列分成兩部分,前一部分都比34小,後一部分都...
排序 氣泡排序 快速排序
1 基本思想 將第乙個記錄的關鍵字與第二個記錄的關鍵字比較,若為逆序,則將兩個記錄交換,再向後比較。關鍵字小的漂浮,關鍵字大的下沉。2 穩定性 演算法穩定。3 時間複雜度 o n 空間複雜度 o 1 4 實現 include define n 5 陣列長度上限 intmain printf 氣泡排序...