找回密码

只需一步,快速开始

只需一步,快速开始

QQ登录

只需一步,快速开始

查看: 1115|回复: 0

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

[复制链接]
发表于 2010-11-1 15:02 | 显示全部楼层 |阅读模式
java初学之排序——选择排序

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

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

示例如下:

  1. public class Test {
  2.    public static void main(String[] args) {
  3.       //需要排序的数组,目前是按照升序排列的
  4.       int a[] = new int[5];
  5.       a[0] = 3;
  6.       a[1] = 4;
  7.       a[2] = 1;
  8.       a[3] = 5;
  9.       a[4] = 2;

  10.       //选择法排序
  11.       int temp;
  12.       for (int i = 0; ia.length; i++) {
  13.          int lowIndex = i;
  14.          //找出最小的一个的索引
  15.          for (int j=i+1;ja.length;j++) {
  16.             if (a[j]  a[lowIndex]) {
  17.                lowIndex = j;
  18.             }
  19.          }
  20.          //交换
  21.          temp=a;
  22.          a=a[lowIndex];
  23.          a[lowIndex]=temp;
  24.       }

  25.      //检测一下排序的结果
  26.      for(int i  a){
  27.         System.out.println(i=+i);
  28.      }
  29.    }
  30. }
复制代码
运行结果:
i=1
i=2
i=3
i=4
i=5

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

热门推荐

关于我们|小黑屋|手机版|Archiver|南漳热线 ( 鄂ICP备2021000082号-2 || 鄂公网安备 42062402000199号 )

GMT+8, 2024-12-28 03:51

Powered by Discuz! X3.4 Licensed © 2001-2013 Comsenz Inc & Style Design

快速回复 返回顶部 返回列表