原理:每一次排序从待排序的数据元素中选择出最大(最小)的一个元素,存放在序列的起始位置,直到全部待排序的数据排完
public class test { public static void main(String[] args) { // TODO Auto-generated method stub int arr[]= {1,4,6,8,9,4,3,7}; for(int i=0; i<arr.length; i++){ int min = arr[i]; int temp; int index = i; for(int j=i+1;j<arr.length;j++){ if(arr[j] < min){ min = arr[j]; index = j; } } temp = arr[i]; arr[i] = min; arr[index]= temp; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]); } } }
注意:算法的时间复杂度是O(n*n)的,意味着值在n比较小的情况下,算法可以保证一定的速度,但是当n足够大的时候,算法的效率会降低。