java选择排序
关于排序,大家还可以看下这篇文章,冒泡排序
选择排序,名字还是挺难懂得,但是原理很简单,就是给到你一个数组,第一次做循环判断时只需要保证你数组的第一数是最小的,即:将第一个数和第二个数比较,如果第二个数比第一个数小,就将两个数交换,然后再比较第一个数和第三个数,若第三个数还小,就继续交换,总之,把小的往前丢。
code献上:
准备工作:
/**
* 随机生成一个无序数组
* @return
*/
public static int[] getUnorderedArr(){
int[] arr = new int[100];
for(int i = 0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);
}
return arr;
}
上面代码是生成一个长度为100的无序数组,接下来看排序
/**
* 选择排序
* @param arr
* @return 一个有序数组
*
* 比较两个数 永远保证循环里面第一个数是最小的
*
*/
public static int[] getOrderedArrWithSel(int[] arr){
int temp = 0;
for(int i = 0;i<arr.length-1;i++){
for(int j = i+1;j<arr.length;j++){
if(arr[j]<arr[i]){
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
return arr;
}
好啦,原理也是很简单,只要想通了,主要是判断条件要注意一下。
欢迎指正!!!