生活随笔
收集整理的这篇文章主要介绍了
23行代码_动图展示——快排详解(排序最快的经典算法)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
快排
1.快排的实现逻辑:
先从数列中取出一个数作为基准数(通常取第一个数)。遍历序列,将比它小的数与比它大的数分别记录下来,分为两类,最后该数放在这两类数中间(它左边的所有数都比它小,右边的所有数都比它大)分别遍历左右区间,重复,直到各区间只有一个数
2. 动态演示
代码实现
#include<bits/stdc++.h>
using namespace std
;void QuickSort(int *arr
, int left
, int right
) {if(left
> right
) return;int i
= left
, j
= right
;int flag
= arr
[left
];while(i
!= j
) {while(arr
[j
] > flag
&& i
< j
) j
--;while(arr
[i
] <= flag
&& i
< j
) i
++;if(i
<j
) swap(arr
[i
], arr
[j
]);} arr
[left
] = arr
[i
];arr
[i
] = flag
;QuickSort(arr
, left
, i
-1);QuickSort(arr
, i
+1, right
);
} int main() {int n
; cin
>>n
; int array
[n
];for(int i
= 0; i
< n
; i
++) cin
>>array
[i
];QuickSort(array
, 0, n
-1);for(int i
= 0 ; i
< n
; i
++) cout
<< array
[i
] << ' ';return 0;}
超强干货来袭 云风专访:近40年码龄,通宵达旦的技术人生
总结
以上是生活随笔为你收集整理的23行代码_动图展示——快排详解(排序最快的经典算法)的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。