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

排序算法之一选择排序

时间:2017-10-27 01:18:05      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:数列   array   style   div   private   blog   之一   第四次   length   

选择排序介绍

  选择排序是一直简单直观的排序算法,其算法思想如下:每一次从待排序数据元素集合中选出最小的数据元素(或最大的数据元素),按照顺序依次放在已排好序的数列的最前面(或最后面),数据元素集合不断缩小,直到数据元素集合为空时,选择排序结束。

举例:

原始数据元素集合:12  32  21  3  74

第一次排序后:【3】  12  32  21  74

第二次排序后:【3  12】  32  21  74

第三次排序后:【3  12  21】  32  74

第四次排序后:【3  12  21  32】  74

最后排序结果:【3  12  21  32  74】

 代码实现:

private static void selectSort(int[] array, int length) {
        int small;//最小元素的下标
        for(int i=0;i<array.length;i++){
            small=i;
            for(int j=i+1;j<array.length;j++){
                if(array[j]<array[small]){ //寻找最小元素
                    small=j;//记住最小元素的下标
                }
            }
            //当最小元素的下标不为i时交换位置
            int temp = array[i]; 
            array[i] = array[small];
            array[small]= temp;
        }

测试代码:

public class SelectSortDemo {
    public static void main(String[] args) {
        int[] array={12,32,21,3,74};
        System.out.printf("排序前:");
        
        //打印排序前数据元素
        for(int i=0;i<array.length;i++){
            System.out.printf("%d ",array[i]);
        }
        
        selectSort(array,array.length);//调用顺序排序方法进行排序
        System.out.printf("排序后:");
        
        //打印排序后数据元素
        for(int i=0;i<array.length;i++){
            System.out.printf("%d ",array[i]);
        }
        
    }
}

结果:

排序前:12 32 21 3 74 排序后:3 12 21 32 74 

 

排序算法之一选择排序

标签:数列   array   style   div   private   blog   之一   第四次   length   

原文地址:http://www.cnblogs.com/sishui-nianhua/p/7732881.html

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