简单选择排序算法
选择排序(Selection Sort)的基本思想:对 n 个记录进行扫描,选择最小的记录,将其输出,接着在剩下的 n-1 个记录中扫描,选择最小的记录将其输出,……,不断重复这个过程,直到只剩一个记录为止。如果要求数据按照从大到小排序,则每次扫描时选择最大的记录即可。选择排序通常分为两种:简单选择排序和堆排序。本文介绍简单选择排序算法。假设有8个需要排序的数据序列如下:69,65,90,37,92,6,28,54。则其排序过程如下图所示。
public class SelectSort { public void SelectSorter(int [] a) { int i , j , k , t; int n = a.length; for(i = 0 ; i < n-1 ; i ++) { k = i; for(j = i +1 ; j < n ; j ++){ if(a[k] > a[j]) k = j; } t = a[i]; a[i] = a[k]; a[k] = t; //扫描次数 System.out.print("第" + (i+1)+"遍: "); for(j = 0 ; j < n ; j ++) { System.out.print(a[j] + ","); } System.out.print("\n"); } } public static void main(String[] args) { int [] b = { 69,65,90,37,92,6,28,54}; SelectSort ss = new SelectSort(); ss.SelectSorter(b); } }测试结果如下所示: