冒泡排序的规律
有一个数组[5,4,3,2,1],假如说要重新排序,进行升序排序,冒泡排序步骤如下
5和4比较,5大,5和4交换位置
[4,5,3,2,1]
5和3比较,5大,5和3交换位置
[4,3,5,2,1]
5和2比较,5大。5和2交换位置
[4,3,2,5,1]
5和1比较,5大,5和1交换位置
[4,3,2,1,5]
5排到了最后一位
4开始和后面的数比较,由于5已经排好,4只需要和后面的3,2,1比较换位就可以了,比较的次数比5少1次
3,2,1同样的道理,比上一轮排序少1次
可以得出结论,排序的轮数是数组长度-1
每轮排序次数是上一次-1
冒泡排序的时间复杂度是O(n^2),也就是说两层循环
代码如下
let arr=[5,4,3,2,1]
//冒泡排序一共要交换的趟数是n-1次
//冒泡排序每趟进行排序的次数比上一次次数减1
for(let i=0;i<arr.length-1;i++)
{
for(let j=0;j<arr.length-1-i;j++)
{
//开始交换
if(arr[j]>arr[j+1])
{
let temp=arr[j]
arr[j]=arr[j+1]
arr[j+1]=temp
}
}
}
document.write(arr)
标签:arr,javascript,交换,冒泡排序,如何,let,排序,比较
From: https://blog.csdn.net/2301_81968528/article/details/143697355