定义太晦涩,不如直接看代码
package review.home.work;
public class SimpleSelectionSort {
public static void main(String[] args) {
int arr[]={0,2,3,1,7,9,8,6,5,4};
//定义一个简单排序算法的方法
simpleSelectionSort(arr);
}
private static void simpleSelectionSort(int[] arr){
int i,j,min,temp;
for(i=0;i<arr.length-1;i++){
min=i;
/*内层for循环:
* 拿到索引值在[i,arr.length-1]间 元素最小值的索引
* (因为下面if语句的比较有arr[min],而min一开始
* 赋值为i,所以是拿到i到arr.length-1间最小值的
* 索引)
*/
for(j=i+1;j<=arr.length-1;j++){
if(arr[j]<arr[min]){
min=j;
}
}
if(i!=min){
/*说明内层for循环有交换
* min对应的索引为[i,arr.length-1]间的最小值
* 交换i和min
*/
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
//数组的遍历
for(i=0;i<arr.length;i++){
System.out.print(arr[i]);
}
}
}
P384