zoukankan      html  css  js  c++  java
  • 选择排序selectSort()

     1 // 它的工作原理是每一次从待排序的数据元素中选出最小的一个元素(循环一圈就会把一个最小的值放在此次循环的$i上),将该元素放到该轮的索引位置(该轮的索引指外层循环的$i)上,
     2 function SelectSort(array $container)
     3 {
     4     $count = count($container);
     5     for ($i = 0; $i < $count; $i++){
     6         $k = $i;
     7         for ($j = $i + 1; $j < $count; $j++){
     8             if($container[$j] < $container[$k]){
     9                 $k = $j;
    10             }
    11         }
    12         if($k != $i){
    13             $temp          = $container[$i];
    14             $container[$i] = $container[$k];
    15             $container[$k] = $temp;
    16         }
    17     }
    18     return $container;
    19 }
    20 
    21 //假设测试这个数组[45,23,12,55,6];
    22 // 第一次外循环
    23 $k = $i = 0;
    24 $j=$i+1;
    25 // 内循环第一次  
    26 $k = 0;$j = 1;$container[$j] = $container[1] = 23; $container[$k] = $container[0] = 45;  $k索引上的值大于$j索引上的的值所以此时  $k = $j =1;
    27 // 内循环第二次  
    28 $k = 1;$j = 2;$container[$j] = $container[2] = 12; $container[$k] = $container[1] = 23;  $k索引上的值大于$j索引上的的值所以此时  $k = $j =2;
    29 // 内循环第三次  
    30 $k = 2;$j = 3;$container[$j] = $container[3] = 55; $container[$k] = $container[2] = 12;  $k索引上的值小于$j索引上的的值所以此时  $k没有进入if判断中,所以$k还是2;
    31 // 内循环第四次  
    32 $k = 2;$j = 4;$container[$j] = $container[4] = 6; $container[$k] = $container[1] = 12;  $k索引上的值大于$j索引上的的值所以此时  $k = $j =4;
    33 //此时内层循环结束,$k=$j=4;
    34 因为$k=4;$i=0;不相等,所以$temp = $container[$i] = 45; $container[$i] = $container[$k] = 6; $container[$k] = $temp = 45;
    35 此时原数组变为[6,23,12,55,45],第一轮循环将6这个最小值放在循环开始的初始位置
    36 //第二次外循环
    37 [6,12,23,55,45]
    38 //第三次外循环
    39 [6,12,23,55,45]
    40 //第四次外循环
    41 [6,12,23,45,55]
    42 // 第四次循环结束完成排序
  • 相关阅读:
    二分图 洛谷P2055 [ZJOI2009]假期的宿舍
    并查集 洛谷P1640 [SCOI2010]连续攻击游戏
    贪心 洛谷P2870 Best Cow Line, Gold
    贪心 NOIP2013 积木大赛
    快速幂 NOIP2013 转圈游戏
    倍增LCA NOIP2013 货车运输
    树形DP 洛谷P2014 选课
    KMP UVA1328 Period
    动态规划入门 BZOJ 1270 雷涛的小猫
    KMP POJ 2752Seek the Name, Seek the Fame
  • 原文地址:https://www.cnblogs.com/xiaofeilin/p/14963258.html
Copyright © 2011-2022 走看看