数据结构学习之选择排序

1.直接选择排序: 

先上图:

 

说实话,直接选择排序最类似于人的本能思想,比如把大小不一的玩具让三岁小毛孩对大小排个序,

那小孩首先会在这么多玩具中找到最小的放在第一位,然后找到次小的放在第二位,以此类推。。。。。。

第一步: 我们拿80作为参照物(base),在80后面找到一个最小数20,然后将80跟20交换。

第二步:  第一位数已经是最小数字了,然后我们推进一步在30后面找一位最小数,发现自己最小,不用交换。

第三步:........

程序源码为:

 1 package com.swust.选择排序;
 2 import com.swust.utils.ArrayUtils;
 3 
 4 public class Example1 {
 5     public static void main(String[] args) {
 6         int[] arr = ArrayUtils.createArray(10);
 7         sort(arr);
 8         ArrayUtils.showArray(arr);
 9     }
10     private static void sort(int[] arr) {
11         //要遍历的次数
12         for(int i=0;i<arr.length-1;i++){
13             //首先假定最小元素的位置为i
14             int small = i;
15             for(int j=i;j<arr.length;j++){
16                 //找到真实最小元素,并且将假定最小元素的下标替换为真实最小元素的下标
17                 if(arr[small]>arr[j]){
18                     small=j;
19                 }
20             }
21             //将真实最小元素和假定最小元素交换位置
22             int temp = arr[small];
23             arr[small] = arr[i];
24             arr[i]=temp;
25         }    
26     }
27 }

 

转载于:https://www.cnblogs.com/sunfie/p/4782144.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值