关于冒泡排序与选择排序

一.冒泡排序
//原理:依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排//到前面。依照这个规则进行多次并且递减的迭代,直到顺序正确。

let a =[8,15,88,55,76,21,39,94];
Let t;
for(let i=0; i<a.length-1; i++){
for(let j=0; j<a.length-i-1; j++){
if(a[j]>a[j+1]){
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
//遍历输出
for(let i=0;i<a.length; i++){
console.log(a[i]);
}
//排序过程解析
//当i=0的时候,里面的循环完整执行,从j=0执行到j=6,这//也就是第一遍排序,结果是将最大的数排到了最后,这一遍循环结束后的//结果应该是[8,15,88,55,76,21,39,94]
//当i=1的时候,里面的循环再次完整执行,由于最大的数已经//在最后了,没有必要去比较数组的最后两项,这也是//j<a.length-1-i的巧妙之处,结果是//[8,15,55,76,21,39,88,94]
//按照上面的规律,每次将剩下数组里面最大的一个数排到最后//面,当第一个循环执行到最后的时候,也就是i=6,此时,j=0,只//需要比较数组的第一和第二项就可以了

二、选择排序
//原理:从原始数组中找到最小的元素,并把该元素放在数组的最前面,然后再//从剩下的元素中寻找最小的元素,放在之前最小元素的后面,一直到排序完毕。
Let a = [6,5,4,7,3,8,2,9,1,0];
Let t;
Let k;
for(let i=0; i<a.length-1; i++){
k = i;
for(let j=i+1; j<a.length; j++){
if(a[k]>a[j]){
k = j;
}
}
t = a[i];
a[i] = a[k];
a[k] = t;
}
//排序过程解析
//定义变量k,变量k中保存着的是最小值位置的索引,随着i的自增,//遍历的数组长度越来越短,直到完成排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值