java与JS直接插入排序的案例

插入排序简单来说,就是重新去遍历一组数据,然后在遍历的时候,拿正在遍历的数据和已经遍历过的数据去对比,最后按照某种特定的顺序去排序; 举个简单的例子,大家都玩过斗地主吧,我们把桌...

插入排序简单来说,就是重新去遍历一组数据,然后在遍历的时候,拿正在遍历的数据和已经遍历过的数据去对比,最后按照某种特定的顺序去排序;


举个简单的例子,大家都玩过斗地主吧,我们把桌子上的牌看成是一个杂乱无序的数组;在我们斗地主的时候,我们会拿刚起的牌和手中的牌进行比较,然后把它插入到指定的位置。这就是我们的插入排序;

attachments-2020-07-XQL7GsRA5f0ff69b79159.jpg


输入:n个数的一个序列<a₁,a₂,...,an>。


输出:输出的结果要满足排序后的结果;


java:

public static void main(String[] args) {
int[] a = { 90, 34, 5, 7, 71, 2};
insertSort1(a, a.length);
}
 
public static void insertSort1(int a[], int num) {
for (int i = 1; i < num; i++) {
int temp=a[i];  //复制为哨兵进行对比
int j=i-1;
while(j>=0&&temp<a[j]){
a[j+1]=a[j]; //如果要对比的数大于当前数则后移一位
j--;  
}
a[j+1]=temp; 
print(a);
}
}
public static void print(int a[]){
for (int i = 0; i < a.length; i++) {
if(i%6==0){
System.out.println();
}
System.out.print(a[i]+"  ");
}
}


 再来个JS版本的

<script>
var a=[90, 34, 5, 7, 71, 2];
insertSort(a);
function insertSort(a){
for(var i in a){
var temp=a[i] //复制为哨兵
var j=i-1; //每次递减一位进行对比
while(j>=0&&temp<a[j]){
a[j+1]=a[j];  //如果temp大于a[j]则后移一位,直到当前哨兵不再大于a[j]
j--;  //找到所在的位置退出当前循环
}
a[j+1]=temp; //将temp插入到当前位置的后一位;
}
alert(JSON.stringify(a));
}
</script>

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
王凯
王凯

92 篇文章

作家榜 »

  1. admin 651 文章
  2. 粪斗 185 文章
  3. 王凯 92 文章
  4. 廖雪 78 文章
  5. 牟雪峰 12 文章
  6. 李沁雪 9 文章
  7. 全易 2 文章
  8. bngvitmrbj 0 文章