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

Java实现算法之--选择排序

时间:2015-08-09 20:44:00      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

        选择排序也是比较简单的一种排序方法,原理也比较容易理解,它与冒泡排序的比较次数相同,但选择排序的交换次数少于冒泡排序。冒泡排序是在每次比较之后,若比较的两个元素顺序与待排序顺序相反,则要进行交换,而选择排序在每次遍历过程中只记录下来最小的一个元素的下标,待全部比较结束之后,将最小的元素与未排序的那部分序列的最前面一个元素交换,这样就降低了交换的次数,提高了排序效率。


看一下实现代码:

public class ChoiceSort {

	public static void _choiceSort(Integer[] a) {
		if (a == null || a.length <= 0) {
			return;
		}
		for (int i = 0; i < a.length-1; i++) {//这里为什么-1?思考一下
			int min = i; /* 将当前下标定义为最小值下标 */

			for (int j = i + 1; j < a.length; j++) {
				if (a[min] > a[j]) { /* 如果有小于当前最小值的关键字 */
					min = j; /* 将此关键字的下标赋值给min */
				}
			}
			if (i != min) {/* 若min不等于i,说明找到最小值,交换 */
				int tmp = a[min];
				a[min] = a[i];
				a[i] = tmp;
			}
		}
	}
}

编写测试方法:

public static void main(String[] args) {
        
         Integer[] list={49,38,65,97,76,13,27,14,10};
         
         //选择排序
         ChoiceSort._choiceSort(list);
         
         for(int i=0;i<list.length;i++){
             System.out.print(list[i]+" ");
         }
         System.out.println();
    }

输出结果:

10 13 14 27 38 49 65 76 97 

喜欢的朋友关注我!多谢支持!

版权声明:本文为博主原创文章,未经博主允许不得转载。

Java实现算法之--选择排序

标签:

原文地址:http://blog.csdn.net/yayun0516/article/details/47379283

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