java算法 直接选择排序

Posted javagogogo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java算法 直接选择排序相关的知识,希望对你有一定的参考价值。

一、基本概念

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

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

 直接选择排序

 

二、算法特点

是否稳定:  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算法 直接选择排序的主要内容,如果未能解决你的问题,请参考以下文章

Java实现七大排序算法

算法拾遗(java描写叙述)--- 选择排序(直接选择排序堆排序)

排序算法

java算法 直接选择排序

Java算法 直接插入排序 -- 直接插入排序算法的非递归和递归形式实现

Java排序算法 - 堆排序的代码