选择排序 java

选择排序
思路:1.每次从列表中找到一个最小的数,然后放在第一个位置,然后下一次从第2个数开始找,然后继续放到前面(第二个)。。。
优化:当没有数替换时候,可以结束寻找最小数,因为已经排好序了
时间复杂度为O(n^2)

package Algorit;
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int []arr ={51,99,2,4,36,20,10,85};
for (int i = 0; i <arr.length-1 ; i++) {
int tmp = i;//假设最小数的位置
int min = arr[i];//假设第一个数为最小值
for (int j =i+ 1; j < arr.length; j++) {//除去第一个数,和后面比较,即从i+1
if (min > arr[j]) {//>就升序,<就降序
min = arr[j];//重置最小数的值
tmp = j;//重置最小数的位置
}
}
//最小值和第一个数互换位置
if(tmp !=i){
arr[tmp] = arr[i];//将第i个数,放到最小值的位置
arr[i] = min;//在第i个数的位置,放最小值
}
}
System.out.println(Arrays.toString(arr));
}
}

posted @ 2020-09-28 23:51  Liang-shi  阅读(111)  评论(0)    收藏  举报