HTML5技术

Html5 简单选择排序演示 - 飞翔的月亮

字号+ 作者:H5之家 来源:H5之家 2016-12-27 10:00 我要评论( )

简单选择排序,是选择排序算法的一种。基本思想:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。由于在每次循环中,会对数值相等的元素改变位置,所以属于非稳定排序。 --------------------------------

简单选择排序,是选择排序算法的一种。基本思想:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。由于在每次循环中,会对数值相等的元素改变位置,所以属于非稳定排序。

---------------------------------------------------------------------

如下图所示:

对简单选择排序的优化方案,是采用二元选择排序,即将其改进为每趟循环确定两个元素(当前趟最大和最小记录)的位置,从而减少排序所需的循环次数。改进后对n个数据进行排序,最多只需进行[n/2]趟循环。

如下图所示:

算法原理,不再赘述,代码如下:

The thirteen html page ul li .mark .redball .ball .line header .left aside section footer input[type="button"] initDiv() { ); mainArea.childNodes; ) { 94 mainArea.removeChild(childs[i]); 95 } ) { ); ); , i); 101 mainArea.appendChild(newDivLine); ) { ); j.toString(); , id); ) { ); { ); 110 } 111 newDivLine.appendChild(newDiv); 112 } 113 } 114 } setElementsValue() { ]; ) { arrTmp[i]; 121 } ; 123 } setSimpleSortValue() { ]; ) { i; ) { arrTmp[j]) { j; 134 } 135 } arrTmp[m]) { arrTmp[m]; arrTmp[i]; tmp; 140 } ) { arrTmp[k]; k) { ); { ;; 149 } 150 } ; 152 153 } 154 } setDoubleSelectSort() { ]; 159 selectSortB(arrTmp); arrTmp.length; ) { ) { ; ; 165 } ; 167 } 168 } selectSortB(a) { a.length; 173 var temp, min, max; ) { i; ) { j : min; 179 }; a[min]; ]; 185 } temp; 187 } a[max]; temp 191 } 192 else { temp; ]; a[max]; temp; 198 } ) { a[k]; k) { ); { ; 208 } 209 } ; 211 } 212 } 简单选择排序Demo简单选择排序设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。简单选择排序非稳定排序算法。在简单选择排序过程中,所需移动记录的次数比较少。进行比较操作的时间复杂度为O(n2),进行移动操作的时间复杂度为O(n)简单选择排序的优化方案是二元选择排序法,将其改进为每趟循环确定两个元素(当前趟最大和最小记录)的位置,从而减少排序所需的循环次数。改进后对n个数据进行排序,最多只需进行[n/2]趟循环 这是底部信息

View Code

关于二元选择排序的特殊处理:

一般情况下进行简单的交换即可。

特殊情况出现在当4个数值中有相同时,比如a[i]=a[max],a[len-1-i]=a[min]。
 在代码里,我选择先把最小值min赋给a[i],同时把a[i]的值取出来,之后在代码里分别讨论了三种情况
①:当max是数组头部时,在①条件下又讨论了min在不在数组尾部的情况;
②:当min是数组尾部时(且max不在数组头部)
③:一般情况,同样适用于【min在数组头部,max在数组尾部】

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 把简单做好也不简单-css水平垂直居中 - 风驰earth

    把简单做好也不简单-css水平垂直居中 - 风驰earth

    2016-12-22 18:00

  • HTML5 表单及其他新增和改良元素 - 喵喵喵---

    HTML5 表单及其他新增和改良元素 - 喵喵喵---

    2016-12-20 10:03

  • HTML5的新语义化的标签 - Avenstar

    HTML5的新语义化的标签 - Avenstar

    2016-12-17 14:01

  • 小议创业初期的技术选择 - 初码

    小议创业初期的技术选择 - 初码

    2016-12-14 14:00

网友点评
h