Chinaunix首页 | 论坛 | 博客
  • 博客访问: 547622
  • 博文数量: 136
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 1343
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 23:18
文章分类

全部博文(136)

文章存档

2011年(28)

2009年(60)

2008年(48)

我的朋友

分类: Java

2008-11-22 18:52:19

/**
 * 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[i]);
    System.out.println("");

    SelectSort(Index - 1); // 选择排序

    // 排序后结果

    System.out.print("排序后: ");
    for (i = 0; i < Index - 1; i++)
      System.out.printf("%3s", a[i]);
    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[i]; // 交换两数值

        a[i] = 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

阅读(621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~