日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快速排序2

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速排序2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法:

1、從數列中挑出一個元素,稱為 "基準"(pivot),

2、重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的后面(相同的數可以到任一邊)。在這個分區退出之后,該基準就處于數列的中間位置。這個稱為分區(partition)操作。

3、遞歸地(recursive)把小于基準值元素的子數列和大于基準值元素的子數列排序。

07.void QuickSort(int *arr, int left, int right) 08.{ 09. int i,j; 10. if(left<right) 11. { 12. i=left;j=right; 13. arr[0]=arr[i]; //準備以本次最左邊的元素值為標準進行劃分,先保存其值 14. do 15. { 16. while(arr[j]>arr[0] && i<j) 17. j--; //從右向左找第1個小于標準值的位置j 18. if(i<j) //找到了,位置為j 19. { 20. arr[i] = arr[j]; 21. i++; 22. } //將第j個元素置于左端并重置i 23. while(arr[i]<arr[0] && i<j) 24. i++; //從左向右找第1個大于標準值的位置i 25. if(i<j) //找到了,位置為i 26. { 27. arr[j] = arr[i]; 28. j--; 29. } //將第i個元素置于右端并重置j 30. }while(i!=j); 31. arr[i] = arr[0]; //將標準值放入它的最終位置,本次劃分結束 32. quicksort(arr, left, i-1); //對標準值左半部遞歸調用本函數 33. quicksort(arr, i+1, right); //對標準值右半部遞歸調用本函數 34. } 35.}

?

轉載于:https://www.cnblogs.com/yl-saber/p/6933534.html

總結

以上是生活随笔為你收集整理的快速排序2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。