首页 > 编程知识 正文

c冒泡排序和快速排序,快速排序和冒泡排序的优缺点

时间:2023-05-04 02:00:50 阅读:14186 作者:117

1 .通过鼓泡排序1.1分析letarr=[ 2、3、4、2、1]

如果两个相邻的值j大于j 1,则两个值交换位置

1.2 测试效率bubbleSort(arr)0 .测试数据arr.length 3W需要0s - 1s的时间

1 .测试数据arr.length==5W需要时间3s - 4s

2 .测试数据arr.length==10W需要14s - 15s的时间

3 .测试数据arr.length==20W需要55s的时间

//鼓泡引起的functionbubblesort(arr ) letlen=arr.lengthfor ) varI=0; i len - 1; I ) letsonlen=len-1-Ifor(varj=0; j sonLen; j () if ) [arr[j]arr[j1]相邻元素的两个对比(arr[j],arr[j],arr[j1](/元素交换) } ) returnarr

1 .配套基础值为数组第一个key左边I(form )右边j (to ) ) I,j各管路的一边不得越界) ) ) )。

2 .首先j向左(与j -- ) key相比小于key时停止)限制j不得超过I ) ) ) ) ) )。

3 .进而I向右(I )与key的对比大于key时停止)限制I不大于j时不得越界) ) ) )。

4 .都在停止时交换两者[arr[j],arr[i]]=[arr[i],arr[j]]

5 .交换基本值和当前I值(设定后续循环的初始值) ) )。

6 .从表单开始向右i-1向左继续循环speedinessort(arr、form、i-1 ) (左侧区域重新排序) )。

7 .从I1向右到向右继续speedinesssort(ARR、I1、to ) )循环) )右区域重新排序) ) ) )。

2.2 测试效率speedinessSort(arr, 0, arr.length-1)

0 .测试数据arr.length 500W需要0秒- 1秒

1 .测试数据arr.length==1000W需要时间1s - 2s

2 .测试数据arr.length==2000W需要时间4s

3 .测试数据arr.length==3000W需要时间6s

//functionspeedinessort(arr,form,to ) ) {let i=form,j=to, key=arr[form]//基础值if[form=to]{return}while(Ij ) )/j如果从右向左,则比较基数j为基础值停止while(arr[j]keyij ) j---/I arr[i]]=[arr[i],arr[j]]}//基本值从I和arr [ form ]=arr [ I ] arr [ I ]=key///form往右走,到i-1左边再到spedid

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。