int[] array = new int[10]; //生成随机数对象 Random random = new Random(); for (int i = 0; i < array.length; i++) { array[i] = random.nextInt(50); System.out.print(array[i]+" "); } System.out.println("\n排序后:"); int index; for (int i = 1; i < array.length; i++) { index = 0; for (int j = 1; j < array.length-i; j++) { if (array[j]>array[index]) { //查找最大值 index = j; } } //交换array.length-i和index(最大值)位置的两个数 int temp = array[array.length-i]; array[array.length-i] = array[index]; array[index] = temp; } //排序后的输出 for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); }
//每次从待排序的数组元素中选出最小(最大)的一个元素,顺序放在已排序好的数组的最后,直到全部待排序的数据元素全部排完。
————————
选择排序法:遇到重复的值不会做任何处理,如果程序中允许数组中有重复值的情况下,建议用此方法。因为它的数据交换次数最少,相对速度也会略微提升
本文出自 “IT菜鸟” 博客,请务必保留此出处http://mazongfei.blog.51cto.com/3174958/1907000
原文地址:http://mazongfei.blog.51cto.com/3174958/1907000