码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习资料-Java常用算法-选择排序算法

时间:2015-01-26 17:32:40      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:

ChooseSort源程序
public class ChooseSort {
 private static void ChooseSort (int [] a){
  for(int i = 0; i < a.length; i++){
   //对数组循环,假设数据排在前面的元素总比后面的小,然后与后面的数据进行比较
   int k = i;
   for(int j = i+1; j <a.length; j++){//对数据遍历,寻找最小的数据元素的数组下标
    if(a[j]<a[k])
     k = j;
   }
   //最少值与a[i]交换
   if(i != k){
   //对i和k进行比较,如果不相等,则i和j下标表示的元素不是同一个元素,则交换a[i],a[k]的值,保证最小值总在最前面
    int temp = a[i];
    a[i] = a[k];
    a[k] = temp;
   }
  }
  
 }

 public static void main(String[] args) {
  int[] test1 = { 51, 38, 49, 27, 62, 5, 16  }; // 测试数组
  chooseSort(test1);

  for (int i = 0; i < test1.length; i++) {
   System.out.print(test1[i] + " ");
  }
 }
}
3.4.1.2  程序运行结果:
5 16 27 38 49 51 62
3.4.2 源程序揭秘
选择排序的基本思想是每一趟(假设是第i趟)处理都是从n-i+1个数据中选择一个数据最小(或最大)的作为有序序列中的第i个数据。其中最简单的一种称为直接选择排序。
选择排序算法的数据结构:
待排序的数组test1 = {51, 38, 49, 27, 62, 5, 16}
选择排序算法原理:
? 直接选择排序的第一趟处理是从数据序列所有n个数据中选择一个最小的数据作为有序序列中的第1个元素并将它定位在第一号存储位置,第二趟处理从数据序列的n-1个数据中选择一个第二小的元素作为有序序列中的第2个元素并将它定位在第二号存储位置,依此类推,当第n-1趟处理从数据序列的剩下的2个元素中选择一个较小的元素作为有序序列中的最后第2个元素并将它定位在倒数第二号存储位置,至此,整个的排序处理过程就已完成。

Java学习资料-Java常用算法-选择排序算法

标签:

原文地址:http://my.oschina.net/ysh3940/blog/371873

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!