(6)选择排序

选择排序(Selection sort)是一种简单直观的[排序算法]它的工作原理是每一次从待排序的中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

最坏的运行的时间为Θ(n^2)

与冒泡排序相比,少了相邻的数组的交换,只是从剩余数组得到最小的元素与固定的位置进行交换。

代码如下

/**
 * @Project: dataStructure
 * @description: 选择排序
 * @author: sunkang
 * @create: 2018-08-19 21:50
 * @ModificationHistory who      when       What
 **/
public class SelectSort {
    /**
     * 选择排序
     * 就是在剩余的数组中找到最小的元素插入到指定的数组中
     * @param arr
     * @return
     */
    public  Integer[] selectSort(Integer[] arr){
        for(int i = 0;i <arr.length -1 ;i++){
            int min = i;
            for( int j = i+1;j<arr.length;j++){
                if( arr[j]<arr[min]){
                    min = j;
                }
            }
            //交换
            int temp = arr[i];
            arr[i] = arr[min];
            arr[min] = temp;
        }
        return arr;
    }

    public  void display(Integer[] arr){
        for(Integer in:arr){
            System.out.print(in+",");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        Integer[] arr  = new Integer[]{1,2,7,4,3,9};
        SelectSort  selectSort = new SelectSort();
        Integer[] newArr =  selectSort.selectSort(arr);
        selectSort.display(newArr);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,235评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,747评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,288评论 0 2
  • 原博客 1.选择排序(Selection Sort): 选择最小元素,移动到首位置。 (1)算法描述和实现: 首先...
    Gitfan阅读 555评论 0 0
  • 以前我任家里盖满尘泥 慵懒的不知如何 捱得过去 躺在多愁的梦里 百无聊赖 是谁将我唤醒? 踏着月光 我对着东风独立...
    南宫木舍阅读 243评论 2 3