8種排序其中的五種

2021-08-03 17:17:50 字數 2487 閱讀 6588

時間久了就忘了,把以前的**拿出來整理一下

插入排序—

直接插入排序(straight insertion sort)

結構圖

system.out.println("初始值:");

obj.print(a);

obj.insertsort(a);

system.out.println("\n排序後:");

obj.print(a);

}public

void

print(int a)

}public

void

insertsort(int a)

a[j+1]=x;//插入}}

}}時間複雜度:o(n^2)

希爾排序(shell`s sort)

. 基本思想

public

static

void

main(string args) ;

shellsort obj=new shellsort();

system.out.println("初始值:");

obj.print(a);

obj.shellsort(a);

system.out.println("\n排序後:");

obj.print(a);

}private

void

shellsort(int a)

}private

void

shellinsertsort(int a, int dk)

a[j+dk]=x;//插入}}

}public

void

print(int a)

}

簡單選擇排序

public

static

void

main(string args) ;

******selectsort obj=new ******selectsort();

system.out.println("初始值:");

obj.print(a);

obj.selectsort(a);

system.out.println("\n排序後:");

obj.print(a);

}private

void

selectsort(int a)

swap(a,k,i);//把最小值放到它該放的位置上}}

public

void

print(int a)

}public

void

swap(int data, int i, int j)

//在不建立物件的基礎上

data[i] = data[i] + data[j];

data[j] = data[i] - data[j];

data[i] = data[i] - data[j];`這裡寫**片`

}

時間複雜度:

o(n2)

氣泡排序

private static int a = ;

public static void main(string args)

}} for (int i= 0;i}

時間複雜度

o(n2)

快速排序

int a = ;

//快速排序no1

private

static

void

sortkuaipaistep1(int l , int r)

int index = sortkuaipaistep2(l, r);

sortkuaipaistep1(l , index - 1);

sortkuaipaistep1(index + 1 , r);

}//快速排序no2

private

static

intsortkuaipaistep2(int l , int r)

if(l < r)

while(l < r && x < a[l])

if(l < r)

a[l] = x;

return l;

}return l;

}

時間複雜度

最好 o(n*log2n)

平均 o(n*log2n)

最壞 o(n2)

還有三種排序沒有會

堆排序

歸併排序

基數排序

8種排序演算法

學習了這麼多的排序演算法,還沒有做個總結,呵呵 氣泡排序 氣泡排序是最慢的排序演算法。在實際運用中它是效率最低的演算法。它通過一趟又一趟地比較陣列中的每乙個元素,使較大的資料下沉,較小的資料上公升。它是o n 2 的演算法。快速排序 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來說...

8種常見排序

堆排序 二叉樹模型 include 交換函式 void swap int a,int i,int j 列印陣列 void printa int a,int len printf n void heapify int a int i,int len void heapsort int a,int le...

8種排序演算法

1.選擇排序 兩層迴圈巢狀,0到n 1選出最小的,與第0個交換,縮小集合為1到n 1,選出最小的,與第乙個交換 時間複雜度 o n2 空間複雜度 因為中間只增加了兩個新變數,儲存最小值和下標,所以空間複雜度為o 1 當陣列為已排序狀態時,仍需要n次比較,最好的情況仍需要o n2 public sta...