标签:
选择排序
排序要求:把长度为n的数组a按照从小到大的顺序进行排序。
冒泡排序思路:给定一个长度为n的数组a,循环n-1次,每次循环找出a[i]到a[n]中最小数的数,然后把该数和a[i]交换位置。
如何找出最小的数?:循环数组,逐个判断大小,把较小的数的脚标取出来,此次循环结束之后把脚标位置的数和a[i]进行交换。
排序示例:
原数组: 2、0、3、6、8、4、9、5、1、7、
第1次循环排序结果: 0、2、3、6、8、4、9、5、1、7、
第2次循环排序结果: 0、1、3、6、8、4、9、5、2、7、
第3次循环排序结果: 0、1、2、6、8、4、9、5、3、7、
第4次循环排序结果: 0、1、2、3、8、4、9、5、6、7、
第5次循环排序结果: 0、1、2、3、4、8、9、5、6、7、
第6次循环排序结果: 0、1、2、3、4、5、9、8、6、7、
第7次循环排序结果: 0、1、2、3、4、5、6、8、9、7、
第8次循环排序结果: 0、1、2、3、4、5、6、7、9、8、
第9次循环排序结果: 0、1、2、3、4、5、6、7、8、9、
public void selectionSort(int[] array) { printArray("原数组:", array); int min=0; int temp; for(int i=0;i<array.length-1;i++){ min=i; for(int j=i;j<array.length;j++){ if(array[min]>array[j]){ min=j; } } temp=array[i]; array[i]=array[min]; array[min]=temp; printArray("第" + (i + 1) + "次循环排序结果: ", array); } }
标签:
原文地址:http://www.cnblogs.com/PerkinsZhu/p/5661496.html