排序演算法(氣泡排序,插入排序,選擇排序)的Java實現
阿新 • • 發佈:2018-12-16
// 氣泡排序
public int[] bubble(int[] a) {
for (int i = 0; i < a.length-1; i++) {
// 相鄰的兩個數做比較,小的想上冒泡,-1防止陣列下標越界
for (int j = 0; j < a.length-i-1; j++) {
if(a[j]>a[j+1]) {
int temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
return a;
}
// 插入排序 public int[] insert(int[] a) { // 無序區 for (int i = 1; i < a.length; i++) { // 有序區(隨著i的增加從無序區插入數字到有序區) for (int j = 0; j < i; j++) { // 無序區插入數後進行排序 if (a[j] > a[j+1]) { a[j + 1] = a[j]; } } } return a; }
// 選擇排序 public int[] select(int[]a) { for(int i=0;i<a.length;i++) { //無序區的最小資料陣列下標 int minIndex=i; for(int j=i+1;j<a.length;j++) { //在無序區中找到最小資料並儲存其陣列下標 if(a[j]<a[minIndex]) { minIndex=j; } } //將最小元素放到本次迴圈的前端 int temp=a[i]; a[i]=a[minIndex]; a[minIndex]=temp; } return a; }