JavaScript实现 插入排序 算法(INSERTION-SORT)


JavaScript实现 插入排序 算法(INSERTION-SORT)
插入排序介绍

算法导论:对于少量的元素,它是一种有效的算法。插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面朝下。然后我们每次从座子上拿走一张扑克牌并将它插入左手中正确的位置,我们从右到左将它与已在手中的牌进行比较。拿在左手上的牌总是排序好的,原来这些牌是桌子上牌堆中顶部的牌。

伪代码实现

INSERTION-SORT(A)
// Note that i is the index of Array A which is from zero not one
// if from one ,next line will be `for i = 2 to A.length`
for i = 1 to A.length - 1
key = A[i]
j = j - 1
//Insert A[i] into the sorted sequence A[1..i-1]
while j > 0 and A[j] > key
A[j+1] = A[j]
A[j] = key
j = j - 1

JavaScript实现

// 内部使用 while 实现
function insertionSort(arr) {
// 当数组中最多只有一个元素时,无需进行排序
if (arr.length > 1) {
// 第一个元素是起始位置不用进行排序,直接从第二个元素开始比较
for (let i = 1; i < arr.length; i++) {
// key , i 分别是当前需要排序的元素的值 和 索引
const key = arr[i];
//从已排数组的最右边开始比较
let j = i - 1;
//当已排序元素的值大于可以时交换位置
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
arr[j] = key;
j = j - 1;
}
}
}
return arr;
}

//内部使用for循环实现
function insertionSort(arr) {
// 当数组中最多只有一个元素时,无需进行排序
if (arr.length > 1) {
// 第一个元素是起始位置不用进行排序,直接从第二个元素开始比较
for (let i = 1; i < arr.length; i++) {
// key,i分别是当前需要排序的元素的值 和 索引
const key = arr[i];
//从已排数组的最右边开始比较

//当已排序元素的值大于可以时交换位置
for (let j = i - 1; j >= 0; j--) {
// 如果key值比要比较的值大,则表示排序完成,此时直接跳出循环
if (key > arr[j]) {
break;
}
arr[j + 1] = arr[j];
arr[j] = key;
}
}
}
return arr;
}

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

JavaScript实现 插入排序 算法(INSERTION-SORT)

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » JavaScript实现 插入排序 算法(INSERTION-SORT)
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏