码迷,mamicode.com
首页 > 编程语言 > 详细

选择排序

时间:2020-11-20 11:27:23      阅读:5      评论:0      收藏:0      [点我收藏+]

标签:比较   数组   str   结果   list   stat   strong   原理   sel   

选择排序是一种简单直观的排序算法,其基本原理,对于一组记录的数据,通过第一次比较得到最小的记录,然后将该记录与第一条记录的位置交换;接着对不包含第一个以外的记录进行比较,得到最小记录并与第二个记录进行位置交换;重复该过程,知道进行比较的记录只有一个时为止。

以数组 {38,65,97,76,13,27,49} 为例:
    13[65 97 76 38 27 49]
    13 27[97 76 38 65 49]
    13 27 38[76 97 65 49]
    13 27 38 49[97 65 76]
    13 27 38 49 65[97 76]
    13 27 38 49 65 76[97]
    13 27 38 49 65 76 97

【代码如下】:

 1 /**
 2  * 选择排序
 3  */
 4 public class SelectionSort {
 5     public static void main(String[] args) {
 6         Integer[] arr = {38,65,97,76,13,27,49};
 7         SelectionSort.sort(arr);
 8         System.out.printf(Arrays.asList(arr).toString());
 9     }
10     public static void sort(Integer[] arr){
11         int len = arr.length;
12         int temp;
13         for(int i=0;i<len-1;i++){
14             for(int j=i+1;j<len;j++){
15                 if(arr[i] > arr[j]){
16                     temp=arr[i];
17                     arr[i]=arr[j];
18                     arr[j]=temp;
19                 }
20             }
21         }
22     }
23 }

【输出结果】:[13, 27, 38, 49, 65, 76, 97]
比较次数 技术图片,比较次数与关键字的初始状态无关,总的比较次数 技术图片 。交换次数 技术图片,最好情况是,已经有序,交换0次;最坏情况交换 技术图片 次,逆序交换 技术图片 次。交换次数比冒泡排序少多了,由于交换所需 CPU 时间比比较所需的 CPU 时间多,n 值较小时,选择排序比冒泡排序快。

选择排序

标签:比较   数组   str   结果   list   stat   strong   原理   sel   

原文地址:https://www.cnblogs.com/zhengzhaoxiang/p/13975952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!