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 對...