Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > javascript技巧

JavaScript选择排序算法原理与实现方法示例

来源:中文源码网    浏览:163 次    日期:2024-05-17 01:13:06
【下载文档:  JavaScript选择排序算法原理与实现方法示例.txt 】


JavaScript选择排序算法原理与实现方法示例
本文实例讲述了JavaScript选择排序算法原理与实现方法。分享给大家供大家参考,具体如下:
一、选择排序简介
冒泡排序、插入排序、选择排序合称为简单排序。下面是选择排序的思想:
假设有一个数组a,我们想象成有一个班级名叫a班,现在全班随意排成一排,排头的位置是a[0],排尾的位置是a[a.length-1]。但高矮顺序不是有序的,我们想从矮到高排,排头最矮,排尾最高。
选择排序是这样工作的:
第一轮:
(1)a[1]位置队员与a[0]位置队员比较,如果比a[0]位置队员矮,就把a[1]的位置记住,如果不比a[0]队员矮,就把a[0]位置记住,记住位置的队员是目前已知最矮的;
(2)a[2]位置队员与记录位置队员比较,如果比记录位置队员矮,就把a[2]改为记录位置,如果不比记录位置队员矮则不改变记录位置,记录位置的队员是目前已知最矮的;
(3)a[3]位置队员与记录位置队员比较,如果比记录位置队员矮,就把a[3]改为记录位置,如果不比记录位置队员矮则不改变记录位置,记录位置的队员是目前已知最矮的;
・・・・・・
以此类推,直到a[a.length-1]位置队员与记录位置队员比较完成,这样记录位置队员是所有队员中最矮的。
但是,我们知道最终要完成排序,最矮的肯定在a[0]位置,因此交换a[0]位置队员和记录位置队员。最矮的队员成功入坑a[0]号位!
第二轮:
重复第一轮的过程,只不过这次是从a[1]位置开始,依次比较,最终将记录位置队员放入a[1]。第二矮的队员成功入坑a[1]号位!
・・・・・・
最后一轮:
从a[a.length-2]位置开始依次比较,这时只剩a[a.length-2]和a[a.length-1]还没有排好序,经过一次比较,就把第二高的队员放入了a[a.length-2]位置,a[a.length-1]位置队员肯定是最高的,排序完成。
二、JavaScript实现选择排序
function select_sort(arr) {
var k;
var temp;
var l=arr.length;
for (var i = 0; i < l-1; i++) {
k=i;
for (var j = i+1; j < l; j++) {
if (arr[j]k=j;
}
}
temp=arr[k];
arr[k]=arr[i];
arr[i]=temp;
}
return arr;
}
var a=[11,2,3,445,7,32,71,1,94];
console.log(select_sort(a));
var b=[94,11];
console.log(select_sort(b));
说明:
如果数组仅有一个元素,不会进入外层for循环,因而相当于没有进行任何操作,结果也是正确的。
上述代码使用在线HTML/CSS/JavaScript代码运行工具http://tools.zwyuanma.com/code/HtmlJsRun测试运行结果如下:
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.zwyuanma.com/aideddesign/paixu_ys
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。

相关内容