首页 > 编程语言 > 详细

选择排序法

时间:2021-01-19 23:38:19      阅读:40      评论:0      收藏:0      [点我收藏+]

1.原理

拿未排序的第一个元素与其它元素依次进行比较,每轮比较获得一个最值(根据需要取最大或最小置于未排序元素首位),比较n-1轮。

画图解释如下(以升序为例):

第一轮比较:

技术分享图片

 

第二轮比较:

 技术分享图片

 

 第三轮比较:

技术分享图片

 

 第四轮比较:

技术分享图片

 

 根据上述,可以得出:n个元素要进行n-1轮比较,每轮比较次数-1;时间复杂度为O(n^2)。

 

2.核心代码如下:

void selectionSort(int[] arr){
        int temp;
        //进行比较轮次
        for (int i=0;i<arr.length-1;i++){
            //每轮比较次数
            for(int j=i+1;j<arr.length;j++){
                //拿未排序的首位依次比较后面元素
                if(arr[i]>arr[j]){
                    temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
    }

 

选择排序法

原文:https://www.cnblogs.com/chigejuzhi/p/14299800.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!