排序 氣泡排序 選擇排序 插入排序

2021-10-24 05:14:37 字數 1810 閱讀 4570

package com.cc.mystudy.datastructor;

public class sortdemo

for (int i = 0; i < array.length ; i++) }}

return array;

}/**

* 選擇排序

* 將未排列陣列的起始位置設定為最小(大)值,將下標記錄下來

* 遍歷陣列,將其餘元素與第乙個元素進行比較,如果滿足條件,將該下標記錄下來

* 將其與i(=0,1,2,3,....)元素交換

** 最佳情況:t(n) = o(n2)

* 最差情況:t(n) = o(n2)

* 平均情況:t(n) = o(n2)

* @param array

* @return

*/public static int selectionsort(int array)

for (int i = 0; i < array.length ; i++)

if (minindex != i)}}

return array;

}/**

* 插入排序

* 遍歷陣列,記錄下來當前陣列符合條件的下標(記錄下來的是當前元素前乙個位置的下標)

* 並記錄下當前位置的元素值

* 因為後移時會覆蓋該元素的值

** 第一次退出while迴圈時preindex = -1,把記錄下來的元素賦值給arr[preindex] = current

** 從第乙個元素開始,該元素可以認為已經被排序;

* 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄;

* 如果該元素(已排序)大於新元素,將該元素移到下一位置;

* 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置;

* 將新元素插入到該位置後;

* 重複步驟2~5。

** 最佳情況:t(n) = o(n)

* 最壞情況:t(n) = o(n2)

* 平均情況:t(n) = o(n2)

* @param array

* @return

*/public static int insertionsort(int array)

int current;

for (int i = 0; i < array.length - 1; i++)

array[preindex + 1] = current;

}return array;

}public static void main(string args) ;

bubblesort(array);

system.out.println("氣泡排序的結果為:");

for (int i = 0; i < array.length ; i++)

system.out.println();

selectionsort(array);

system.out.println("選擇排序的結果為:");

for (int i = 0; i < array.length; i++)

system.out.println();

insertionsort(array);

system.out.println("插入排序的結果為:");

for (int i = 0; i < array.length; i++) }}

執行結果:

排序,氣泡排序,選擇排序,插入排序

public class sorts if flag 如果一輪排序中沒有發生交換證明已經排好 bubblesort的排序方法是保證每次確定把minimum value推到最前面 合適的位置 時間複雜度 o n2 return input public static int selectsort in...

氣泡排序,選擇排序,插入排序

氣泡排序,選擇排序,插入排序 小規模的檔案以及基本有序的檔案,插入排序的效能比快速排序的效能更為有效一些,實際上,插入排序通常也做快速排序實現的一部分。1 氣泡排序 packagedatastrut public classbubblesort public voidinsert longvalue...

選擇排序 , 插入排序 , 氣泡排序

編寫 include void println int array,int len 列印給定長度的陣列 printf n void swap int array,int i,int j 交換陣列中兩個位置的元素 void selectionsort int array,int len o n n 對...