通讯数码网站,电子商务网站开发平台,开发网站广州,怎样做公司的网站首页算法#xff1a; 1、从数列中挑出一个元素#xff0c;称为 基准#xff08;pivot#xff09;#xff0c; 2、重新排序数列#xff0c;所有元素比基准值小的摆放在基准前面#xff0c;所有元素比基准值大的摆在基准的后面#xff08;相同的数可以到任一边 1、从数列中挑出一个元素称为 基准pivot 2、重新排序数列所有元素比基准值小的摆放在基准前面所有元素比基准值大的摆在基准的后面相同的数可以到任一边。在这个分区退出之后该基准就处于数列的中间位置。这个称为分区partition操作。 3、递归地recursive把小于基准值元素的子数列和大于基准值元素的子数列排序。 07.void QuickSort(int *arr, int left, int right)
08.{
09. int i,j;
10. if(leftright)
11. {
12. ileft;jright;
13. arr[0]arr[i]; //准备以本次最左边的元素值为标准进行划分先保存其值
14. do
15. {
16. while(arr[j]arr[0] ij)
17. j--; //从右向左找第1个小于标准值的位置j
18. if(ij) //找到了位置为j
19. {
20. arr[i] arr[j];
21. i;
22. } //将第j个元素置于左端并重置i
23. while(arr[i]arr[0] ij)
24. i; //从左向右找第1个大于标准值的位置i
25. if(ij) //找到了位置为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, i1, right); //对标准值右半部递归调用本函数
34. }
35.} 转载于:https://www.cnblogs.com/yl-saber/p/6933534.html