简单选择排序算法

11年前

       选择排序(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);   }  }
测试结果如下所示: