奇数在前,偶数在后,可以有顺序改变

和上一篇博客不同,上一篇要求相对顺序不变,因此快排这种不稳定的排序方法就不行了,只能选择稳定的排序算法,这里要注意,比较并不只是大小的比较,只关注大小的比较思路会局限,像我刚开始都没意识到这是一道排序题。如果不要求相对顺序,则可以使用快排。在以前的文章里也使过快排去找第k小的数,可见快排思路的灵活性。这里利用patition函数,一遍过后,小的 在左边,大的在右边,同样也可以做到将奇数偶数分开,将正数负数分开也是一样的道理。

#include 
#include
#include
#include
#include
#include
#include
using namespace std;
void partitiona(int *a,int l,int r)
{
    a[0]=a[l];
    while(l


你可能感兴趣的:(奇数在前,偶数在后,可以有顺序改变)