排序算法选择排序

简单选择排序(Simple Selection Sort)
就是通过n-i次关键字的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换之

时间复杂度:

1) 最好情况:本身有序,需要比较n-1次 时间复杂度为o(n)

2)最坏情况:逆序情况,需要比较(n-1)+(n-2)+…+2+1=n(n-1)/2 时间复杂度为o(n²)
性能上略优于冒泡排序 减少了交换次数

static void selectionSort(int[] array) {  
        if (array != null && array.length > 0) {  
            int i, j,min;  
            for (i = 0; i < array.length; i++) {  
                min=i;  
                for (j = i + 1; j < array.length; j++) {  
                    if (array[min] > array[j]) {  
                        min=j;//找出最小记录  
                    }  
                }  
                if(i!=min){//如果最小记录位置有变化,执行交换  
                    swap(array, i, min);  
                }  
            }  
        }  
    }```

/**

  • 将数组的2个位置交换
    */
    static void swap(int[] array, int i, int j) {
    if (array != null && array.length > 0) {
    if (i >= 0 && j >= 0 && i <= array.length && j <= array.length) {
    int temp = array[i];
    array[i] = array[j];
    array[j] = temp;
    }
    }
    }```
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,220评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,744评论 0 15
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 2,300评论 0 35
  • 直选大底54注 166 186 188 265 276 278 285 287 289 298 358 368 3...
    99b48d6a94c7阅读 108评论 0 0
  • 强杀某个进程taskkill /f /im 应用名 创建指定大小文件fsutil file createnew ...
    夏树的宝马阅读 407评论 0 0