haveatry 发表于 2010-11-1 10:53:58

java初学之排序——选择排序

java初学之排序——选择排序

Java私塾跟我学系列——JAVA篇 网址:www.javass.cn

基本思路:从所有元素中选择一个最小元素 a放在 a(即让最小元素 a与 a交换),作为第一轮;第二轮是从 a开始到最后的各个元素中选择一个最小元素,放在 a中;……依次类推。n 个数要进行(n-1)轮。比较的次数与冒泡法一样多,但是在每一轮中只进行一次交换,比冒泡法的交换次数少,相对于冒泡法效率高。

示例如下:
public class Test {
   public static void main(String[] args) {
      //需要排序的数组,目前是按照升序排列的
      int a[] = new int;
      a = 3;
      a = 4;
      a = 1;
      a = 5;
      a = 2;

      //选择法排序
      int temp;
      for (int i = 0; ia.length; i++) {
         int lowIndex = i;
         //找出最小的一个的索引
         for (int j=i+1;ja.length;j++) {
            if (aa) {
               lowIndex = j;
            }
         }
         //交换
         temp=a;
         a=a;
         a=temp;
      }

   //检测一下排序的结果
   for(int ia){
      System.out.println(i=+i);
   }
   }
}运行结果:
i=1
i=2
i=3
i=4
i=5

如果你想要按照降序排列,很简单,只需要把: if (a   a)这句话修改成:if (aa)就可以了。

Jon 发表于 2010-11-2 15:29:04

冒泡法是最基本的算法之一
页: [1]
查看完整版本: java初学之排序——选择排序