免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1283 | 回复: 0
打印 上一主题 下一主题

JAVA排序算法实现代码-选择(Select)式排序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-22 18:52 |只看该作者 |倒序浏览

/**
* JAVA排序算法实现代码-选择(Select)式排序。
*
* @author 老紫竹 JAVA世纪网(java2000.net)
*
*/
public class Test {
  public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; // 预设数据数组
  public static void main(String args[]) {
    int i; // 循环计数变量
    int Index = a.length;// 数据索引变量
    System.out.print("排序前: ");
    for (i = 0; i  Index - 1; i++)
      System.out.printf("%3s", a);
    System.out.println("");
    SelectSort(Index - 1); // 选择排序
    // 排序后结果
    System.out.print("排序后: ");
    for (i = 0; i  Index - 1; i++)
      System.out.printf("%3s", a);
    System.out.println("");
  }
  public static void SelectSort(int Index) {
    int i, j, k; // 循环计数变量
    int MinValue; // 最小值变量
    int IndexMin; // 最小值索引变量
    int Temp; // 暂存变量
    for (i = 0; i  Index - 1; i++) {
      MinValue = 32767; // 目前最小数值
      IndexMin = 0; // 储存最小数值的索引值
      for (j = i; j  Index; j++) {
        if (a[j]  MinValue) // 找到最小值
        {
          MinValue = a[j]; // 储存最小值
          IndexMin = j;
        }
        Temp = a; // 交换两数值
        a = a[IndexMin];
        a[IndexMin] = Temp;
      }
      System.out.print("排序中: ");
      for (k = 0; k  Index; k++)
        System.out.printf("%3s", a[k]);
      System.out.println("");
    }
  }
}

运行结果
排序前: 10 32 1 9 5 7 12 0 4
排序中: 1 32 10 9 5 7 12 0 4
排序中: 1 5 32 10 9 7 12 0 4
排序中: 1 5 9 32 10 7 12 0 4
排序中: 1 5 9 10 32 7 12 0 4
排序中: 1 5 9 10 32 7 12 0 4
排序中: 1 5 9 10 32 7 12 0 4
排序中: 1 5 9 10 32 7 12 0 4
排序中: 1 5 9 10 32 7 12 0 4
排序后: 1 5 9 10 32 7 12 0 4


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/76697/showart_1659348.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP