基于JavaScript实现的插入排序算法分析
作者:布瑞泽的童话 时间:2024-04-16 08:55:36
本文实例讲述了基于JavaScript实现的插入排序算法。分享给大家供大家参考,具体如下:
根据排序过程中使用的存储器不同,可以将排序方法分为两大类:内部排序和外部排序。
内部排序是指待排序记录存放在计算机随机存储器中进行的排序过程;外部排序指的是待排序的记录数量很大,以致内存一次不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。
下面介绍几种常见的内部排序方式:
插入排序
插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入已排好序的有序表中,从而得到一个新的、记录数加1的有序表。
插入排序有两个循环,外循环将数组元素挨个移动,而内循环则对外循环中选定的元素及它后面的那个元素比较。如果外循环中选中元素小,那么数组元素会向右移动,为内循环中的这个元素腾出位置。
下面我们通过js实现直接插入排序过程:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript插入排序</title>
</head>
<body>
<script type="text/javascript">
function insertSort(nums){//插入排序
var temp,
inner;
for(var outer=1;outer<nums.length;outer++){//外循环选中元素
temp=nums[outer];//选中元素
inner=outer;
while(inner>0&&(nums[inner-1]>=temp)){//内循环与选中元素对比
nums[inner]=nums[inner-1];//如果选中元素前面的元素大,则前面的元素移到右侧
inner--;//依次比较
}
nums[inner]=temp;//直到找到正确的位置
}
}
function show(nums){//显示数组
for(var i=0;i<nums.length;i++){
document.write(nums[i]+' ');
}
document.write('<br>');
}
var nums=[6,10,0,6,5,8,7,4,2,7];
show(nums);//6 10 0 6 5 8 7 4 2 7
insertSort(nums);
show(nums);//0 2 4 5 6 6 7 7 8 10
</script>
</body>
</html>
排序过程如下:
可以看到,插入排序的运行并非通过数据交换,而是通过将较大的数组元素移动到右侧,为数组左侧的较小元素腾出位置。其时间复杂度为O(n2)。
希望本文所述对大家JavaScript程序设计有所帮助。
标签:JavaScript,插入排序,算法
0
投稿
猜你喜欢
php json_encode与json_decode详解及实例
2023-07-04 22:46:27
经验几则 推荐
2024-04-22 12:46:14
Python全景系列之数据类型大盘点
2021-01-10 15:29:19
SQLServer行转列实现思路记录
2024-01-18 05:42:43
解决python删除文件的权限错误问题
2023-09-06 07:33:36
Python中选择结构实例讲解
2023-06-26 14:56:09
python遍历字符串中每一个字符的4种方式
2022-12-21 07:33:03
VS CODE 使用SVN插件的方法步骤
2023-05-22 10:39:33
在vscode中配置python环境过程解析
2021-10-08 20:28:15
Django如何简单快速实现PUT、DELETE方法
2021-04-14 17:53:07
C#调用Python模块的方法
2021-04-13 15:29:10
Django框架安装及项目创建过程解析
2022-09-20 12:55:45
Python 编码规范(Google Python Style Guide)
2023-04-12 03:49:35
python的id()函数介绍
2021-12-18 09:17:45
得到字符串真实长度和取固定长度的字符串函数
2008-10-06 13:12:00
让Python更加充分的使用Sqlite3
2022-06-07 05:53:21
python日期时间转为字符串或者格式化输出的实例
2021-06-26 17:12:12
使用Python制作一个打字训练小工具
2021-10-19 20:23:12
MySQL数据库中varchar类型的数字比较大小的方法
2024-01-14 17:10:35
如何用用Python制作NFT区块链作品
2022-11-21 22:51:09