宁海在线

 找回密码
 立即注册

QQ登录

只需一步,快速开始

快捷登录

客服电话:0574-65520000
搜索
查看: 1286|回复: 0

[电脑] java初学之排序——选择排序

[复制链接]

17

主题

20

帖子

185

积分

Lv.1 婴儿

Rank: 1

积分
185
在线时间
6 小时
发表于 2010-11-1 14:51:17 | 显示全部楼层 |阅读模式 | 来自北京
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. }
!discuzcode_copyclipboard!



运行结果:
i=1
i=2
i=3
i=4
i=5

如果你想要按照降序排列,很简单,只需要把: if (a[j]   a[lowIndex])这句话修改成:if (a[j]  a[lowIndex])就可以了。
下载宁海在线客户端
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|客户端|浙公网安备案 33022602000116|宁海在线 ( 浙B2-20200368

关于我们|电话:0574-65520000 ,GMT+8, 2024-11-23 18:38 , Processed in 0.080652 second(s), 22 queries , Apc On.

Powered by Discuz! X3.4

© 2000-2015 NHZJ Inc.

违法和不良信息举报电话:13819844444  邮箱:admin@nhzj.com
 未成年人保护服务电话:13819844444  邮箱:admin@nhzj.com
快速回复 返回顶部 返回列表