排序演算法
平均時間複雜度
氣泡排序
o(n2)
選擇排序
o(n2)
插入排序
o(n2)
希爾排序
o(n1.5)
快速排序
o(n*logn)
歸併排序
o(n*logn)
堆排序o(n*logn)
基數排序
o(d(n+r))
所謂氣泡排序 就是比較兩個相鄰的數,大的下沉小的上浮,這種方法時間複雜度為o(n^2),如果數量級比較高,不適宜用這種方法
public static void maopao();
int temp;
for (int i = 0; i < a.length-1; i++) }}
for (int i = 0; i < a.length; i++)
}
遍歷整個資料找出最大/最小的放到第乙個,反覆執行這一操作,將資料排序,平均時間複雜的也是o(n^2)
public static void xuanze();
int lenth = a.length;
for(int i=0;i把整個陣列分成兩部分,一部分排過序,一部分沒有,然後把沒有排過序的乙個乙個插入到對應位置,時間複雜度依然是
public static void charu();
int lenth = a.length;
int temp;
for(int i=0;i0;j--)
temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;}}
}
關於常用排序等演算法的例子整理
include include include include using namespace std void printarray int a,int n 插入排序 void insersort int a,int n 效率o n n a x 1 temp printarray a,n 選擇排序...
常用的排序演算法
排序方式 插入排序 直接插入排序 shell排序 選擇排序 直接選擇排序 堆排序交換排序 氣泡排序 快速排序 歸併排序 分配和索引排序 基數排序 桶式排序 include using namespace std 直接插入排序 arr為待排陣列,n為陣列長度 void insertsort int a...
常用的排序演算法
1.氣泡排序 private static void bubblesort int a 列印氣泡排序的結果 for int i 0 i2.快速排序 public class quicksort qs.data data qs.sort 0,qs.data.length 1 qs.display 3....