常用排序算法之二:直接插入排序的两种实现方式
2016-05-04 20:58
351 查看
思路:每次讲带排序的关键元素按照其大小插入到前面已经排序好的适合位置。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [21,43,87,56,4,86,32];
for(var i=1;i<arr.length;i++){ // 遍历所有数据
if(arr[i]<arr[i-1]){ // 判断是否需要调换位置
var temp = arr[i];
for(var j=i;j>=0;j--){
if(temp<arr[j-1]){
arr[j]=arr[j-1];
}else{
arr[j]=temp;
break;
}
}
}
}
alert(arr)
</script>
</html>
思路:放弃元素逐个移位,换成元素位置交换。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [21,43,87,56,4,86,32];
for(var i=1;i<arr.length;i++){ // 遍历所有数据
for(var j=i;j>0 && arr[j]<arr[j-1];j--){
var temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
alert(arr)
</script>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [21,43,87,56,4,86,32];
for(var i=1;i<arr.length;i++){ // 遍历所有数据
if(arr[i]<arr[i-1]){ // 判断是否需要调换位置
var temp = arr[i];
for(var j=i;j>=0;j--){
if(temp<arr[j-1]){
arr[j]=arr[j-1];
}else{
arr[j]=temp;
break;
}
}
}
}
alert(arr)
</script>
</html>
思路:放弃元素逐个移位,换成元素位置交换。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var arr = [21,43,87,56,4,86,32];
for(var i=1;i<arr.length;i++){ // 遍历所有数据
for(var j=i;j>0 && arr[j]<arr[j-1];j--){
var temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
alert(arr)
</script>
</html>
相关文章推荐
- 关于欧拉通路、欧拉回路的一些定理,推论
- cocos2d-x3.0新增的Vector类,cocos2d-x3.0新的数据结构
- NIO边看边记 之 channel(二)
- React中prop和state的区别
- Android 内功心法(1.2)——android常用设计模式之工厂模式
- leetcode 217 Contains Duplicate C++
- 使用ONOS的REST API来下发流表
- 深入理解java虚拟机(3)---类的结构
- hdu 1241Oil Deposits(dfs模板)
- nvm node 版本管理器的安装
- 解决No resource found that matches the given name 'android:Theme.Material.Light.DarkActionBar'
- JAVA中的数组工具类
- paper4—Multi-MPE_Trigger_Algorithm
- 共同学习Java源代码--常用工具类--StringBuffer(四)
- 完美解决listView 文字超链接点击事件和listitem点击事件冲突问题
- centos 7 安装cscope
- Qt基础学习(6)------多页面切换之QTabWidget
- 二叉搜索树
- cocoaPods 使用
- redis的简单使用