概述
冒泡排序
冒泡排序的基本概念:冒泡排序类似于水中冒泡,较大的数沉下去,较小的慢慢冒起来,假设从小到大,较大的数慢慢往后排较小的数慢慢往前排
(冒泡排序其实就是每一次循环遍历,将一个最大的数一到序列末尾)
算法描述:
1.比较相邻的元素,如果前一个比后一个大,则进行位置交换。
2.第一轮排序第1个和第2个一对,比较与交换,随后第2个和第3个一对比较交换,这样直到倒数第2个和最后1个,将最大的数移动到最后一位。
3.第二轮排序得到第二大的值,放在倒数第二个位置
4.需要n-1趟
冒泡排序代码实现
例如:随机选取10个 1-100的数 放到数组中 并将其从小到大排序
//随机10个数
var list = [];
for (var i = 0; i < 10; i++) {
var num = Math.round(Math.random() * 100);
list[i] = num;
}
console.log(“原数组:”, list);
// 冒泡排序
for (var j = 0; j < list.length - 1; j++) {
for (var i = 0; i < list.length - 1 - j; i++) { // 0 length-2
if (list[i] > list[i + 1]) {
var temp = list[i];
list[i] = list[i + 1];
list[i + 1] = temp;
}
}
console.log(j, list);
}
选择排序
选择排序的基本概念:是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。
算数描述:
1.第一次从下标为0的开始下标为0的这个数与后面的n-1个进行比较,找出最小或者最大的放在下标为0的这个位置;
2.第二次从下标为1的开始比较,查询剩下的最大或者最小值,放在下标为1的位置;以此类推;直到排序完成
选择排序代码实现
var list=[45, 47, 51, 54, 65, 42, 29, 0, 75, 22];
console.log(list);
for(var j=0;j<list.length-1;j++){
// list[j] 外层循环的当前元素
for(var i=j+1;i<list.length;i++){
if(list[i]<list[j]){
var temp=list[j];
list[j]=list[i];
list[i]=temp;
}
}
}
console.log(list);
区别
1.冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值;
2.冒泡排序每一轮比较后,位置不对都需要换位置,选择排序每一轮比较都只需要换一次位置;
3.冒泡排序是通过数去找位置,选择排序是给定位置去找数;
4.选择排序交换次数较少,一定程度上提高了运算效率,但是选择排序是不稳定的排序方法
最后
以上就是醉熏戒指为你收集整理的冒泡排序和选择排序的区别的全部内容,希望文章能够帮你解决冒泡排序和选择排序的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复