1.1 思路
先準備乙個陣列 intarr=
從欲排序的資料中,按照指定的規則選出某一元素,再按照規定交換位置後達到排序的目的
規則:
第一次從arr[0]-arr[n-1]中選取最小值,和arr[0]交換
第二次從arr[1]-arr[n-1]中選取最小值,和arr[1]交換
第三次從arr[2]-arr[n-1]中選取最小值,和arr[2]交換
第n-1從arr[n-2]-arr[n-1]中選取最小值,和arr[n-2]交換
1.2舉個栗子
1.2.1: 準備乙個陣列,加上一些顯示操作
int arr = ;
system.out.print("排序前:");
system.out.println(arrays.tostring(arr));
1.2.2: 第一輪操作
public static int selectedfirstsort(int arr)
}//傳統的交換方法
//開始進行交換 將最小值放在arr[0]
if (minindex != 0)
"第一輪過後:" + arrays.tostring(arr));
return arr;
}
1.2.3: 第二輪操作
public static int selectedsecondsort(int arr)
}//開始進行交換 將最小值在arr[1]
if (minindex != 1)
"第二輪過後:" + arrays.tostring(arr));
return arr;
}
1.2.3 找到規律,在外面套乙個外迴圈
//選擇排序
public static int selectallsort(int arr)
}//開始進行交換 將最小值放在arr[0]
if (minindex != i)
"第"+(i+1)+"輪過後:" + arrays.tostring(arr));
}return arr;
}
1.2.4 調一波主函式
public static void main(string args) ;
system.out.print("排序前:");
system.out.println(arrays.tostring(arr));
int firstarray = selectedfirstsort(arr);
system.out.println("第一輪過後:"+arrays.tostring(firstarray));
//第一輪過後 1 119 34 101
int secondarray = selectedsecondsort(firstarray);
system.out.println("第二輪過後:"+arrays.tostring(secondarray));
//第二輪過後 1 34 119 101
//需要經過array.length-1輪
資料結構 排序演算法之選擇排序
一 選擇排序 最差的排序演算法 在選擇排序中,假定我們需要公升序,因此在每次排序中,需要找到最大的元素,將其放在最後,在每一次的迴圈中,都是將最大的元素放在最後,因此對於資料較多的陣列,迴圈的次數將與陣列中元素的個數一致,因此,在對於這種陣列進行排序時,將十分的浪費時間。有關選擇排序的思路,如下所示...
資料結構中排序演算法之選擇排序演算法
對於選擇排序,它的時間複雜度為o n 2 空間複雜度為o 1 它的具體思想為 對於需要進行排序的陣列a,我們在每一趟排序中找到陣列中最小或者最大的元素,記其為a j 然後將其與每一趟排序時未排好序部分的第乙個元素進行交換,以此類推,直到陣列a中元素全部有序排列。在這裡,在每一趟排序查詢陣列中最小或最...
資料結構排序演算法之選擇排序法
選擇排序法 是對定位比較交換法 也就是氣泡排序法 的一種改進。選擇排序的基本思想是 每一趟在n i 1 i 1,2,n 1 個記錄中選取關鍵字最小的記錄作為有序序列中第i個記錄。void choosesort int a,int n 交換最小值與第i個元素 tmp a indexofminnum a...