dede网站模板 医疗,展览策划,网站制作多少钱一个月,长裕建设有限公司网站众所周知#xff0c;冒泡排序是编程中最经典也是最简单的一种排序方法#xff0c;它是通过重复访问对两个相邻的值进行比较#xff0c;由于在互换的过程中#xff0c;最大 (或最小) 的那个值会慢慢的交换到顶部#xff0c;像汽水一样#xff0c;故名“冒泡排序”。 let a… 众所周知冒泡排序是编程中最经典也是最简单的一种排序方法它是通过重复访问对两个相邻的值进行比较由于在互换的过程中最大 (或最小) 的那个值会慢慢的交换到顶部像汽水一样故名“冒泡排序”。
let arr [3,9,5,1,8,2,14,10]//arr的长度为8需要确定7个值外循环arr.length- 1
for(let i 0; i arr.length - 1; i) {
for(let j 0;j arr.length - 1 - i;j){//第一轮循环需要对比6次内循环arr.length - 1 -i
if (arr[j] arr[j1]){
let num arr[j];
arr[j] arr[j1];
arr[j1] num;
}
}
}
console.log(arr); // 最终结果1 2 3 5 8 9 10 14 冒泡比较消耗性能因为说白了他是将一个数字与所有数字都进行一次比较然后来确定位置在进行下一个数字与所有数字进行比较所以经常不建议使用. 毕竟排序的方法有多种 1.冒泡排序 算法描述 比较相邻的元素。如果第一个比第二个大就交换它们两个 对每一对相邻元素作同样的工作从开始第一对到结尾的最后一对这样在最后的元素应该会是最大的数 针对所有的元素重复以上的步骤除了最后一个 重复步骤1~3直到排序完成 2.选择排序 算法分析 表现最稳定的排序算法之一因为无论什么数据进去都是O(n2)的时间复杂度所以用到它的时候数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。理论上讲选择排序可能也是平时排序一般人想到的最多的排序方法了吧 3.插入排序 算法分析 插入排序在实现上通常采用in-place排序即只需用到O(1)的额外空间的排序因而在从后向前扫描过程中需要反复把已排序元素逐步向后挪位为最新元素提供插入空间 4.归并排序 算法分析 归并排序是一种稳定的排序方法。和选择排序一样归并排序的性能不受输入数据的影响但表现比选择排序好的多因为始终都是O(nlogn的时间复杂度。代价是需要额外的内存空间 5.快速排序 算法描述 快速排序使用分治法来把一个串list分为两个子串sub-lists。具体算法描述如下 从数列中挑出一个元素称为 “基准”pivot) ; (相同的数可以到任一边)。在这个分区退出之后该基准就处于数列的中间位置。这个称为分区partition操作 递归地recursive把小于基准值元素的子数列和大于基准值元素的子数列排序 我就不一一列举了常用的排序方法还有“希尔排序”“堆排序”“计数排序”“桶排序”...