zoukankan      html  css  js  c++  java
  • 数据结构学习之选择排序

    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 }
  • 相关阅读:
    再探最大公约数
    非旋treap
    初赛毒瘤汇总(持续更新中)
    架构漫谈阅读笔记五--以豆瓣得基础架构为例
    架构设计小论文
    第一阶段
    架构漫谈阅读笔记六--以淘宝数据魔方技术架构解析为例
    学习进度第八周
    架构漫谈阅读笔记一
    软件架构之 Refined Architecture阶段
  • 原文地址:https://www.cnblogs.com/sunfie/p/4782144.html
Copyright © 2011-2022 走看看