zoukankan      html  css  js  c++  java
  • 排序算法---简单选择排序

    不稳定

    i从0开始,

    第i趟排序中,从n-i个记录中选取关键字第i小的元素,作为有序序列的第i个元素

    以此类推,直到有序序列包含所有的待排序关键字

        public static void selectSort(int[] array){
            //n个元素,一共需要进行n-1趟选择排序
            for(int i=0;i<array.length-1;i++){//第i趟
                //用于记录在第i趟选择排序的过程中,后n-i个元素中最小的下标。。。
                //现将后n-i个元素的第一个视为最小的,然后比较之后的,有比它还小的,替换该值即可
                int flag = i;
                for(int j=i+1;j<array.length;j++){
                    if(array[j]<array[flag]){
                        flag = j;
                    }
                }
                //该趟操作完成之后,flag中记录的就是这n-i个元素中最小元素的下标,将flag位置的元素和i位置的元素交换即可
                //如果在某一趟中,第一个元素就是最小的,就不用交换了
                if(flag != i){
                    array[i] = array[i]^array[flag];
                    array[flag] = array[i]^array[flag];
                    array[i] = array[i]^array[flag];
                }
                
                System.out.print("第"+(i+1)+"趟:");
                listArray(array);
            }
        }

    不论什么情况下,时间复杂度:O(n^2)

  • 相关阅读:
    vim 常用命令
    centos 安装mysql
    centos部署ftp
    centos 6.8部署nginx
    ndk学习16: unix domain socket
    ndk学习14: 进程
    ndk学习13: proc
    ndk学习11: linux内存管理
    ndk学习10: linux文件系统
    ndk学习9: 动态使用共享库
  • 原文地址:https://www.cnblogs.com/duanjiapingjy/p/9556431.html
Copyright © 2011-2022 走看看