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

java算法(一) 直接选择排序

时间:2016-11-03 13:45:56      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:pac   out   ons   rgs   排序   pack   最大   new   技术分享   

一、基本概念

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(注:要把最大最小的元素和起始的元素交换),

然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

 技术分享

 

二、算法特点

是否稳定:  false

平均时间复杂度:O(n^2)

最差时间复杂度:O(n^2)

最优时间复杂度:O(n^2)

 

技术分享

package com.jiafuwei.java;



/**
 * java 选择排序
 * @author jfw
 *
 */
public class SelectionSort {
    public static void main(String[] args) {
        int [] collections = {36,23,56,789,342,456,34,7,234,4578,32};
        SelectionSort selectionSort = new SelectionSort();
        selectionSort.sort(collections);
        for (int i = 0; i < collections.length; i++) {
            System.out.print(collections[i]+" ");
        }
    }
    
    public void sort(int [] data) {
        for(int k=0;k<data.length;k++){
            int min = k;
            //先把这一圈循环中的第一个数和后面的数进行比较 如果大于后面的数 然后把后面数的下标值记录下来
            //注意 这里i=k 是从k后面开始循环
            for(int i=k;i<data.length;i++){
                if(data[min]>data[i]){
                    min = i;
                }
            }
            //把这一圈循环中的一个数记录下来
            int temp = data[k];
            //把这一圈循环中的一个数变成最小的数
            data[k] = data[min];
            //把以前最小数的位置  改变为当时的第一个数
            data[min] = temp;
        }
    }
}

 

java算法(一) 直接选择排序

标签:pac   out   ons   rgs   排序   pack   最大   new   技术分享   

原文地址:http://www.cnblogs.com/jiafuwei/p/6025931.html

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