zoukankan      html  css  js  c++  java
  • #sort 快速排序 20. 9.14

    在这里插入图片描述

    #include <iostream>
    
    using namespace std;
    
    const int N = 100010;
    
    int q[N];
    
    void quick_sort(int q[], int l, int r)
    {
        if (l >= r) return;
    
        int i = l - 1, j = r + 1, x = q[l + r >> 1];
        //i是比x大的数, j是比x小的数
        while (i < j)
        {
            do i ++ ; while (q[i] < x);
            do j -- ; while (q[j] > x);
            if (i < j) swap(q[i], q[j]);
        }
    
        quick_sort(q, l, j);//不能换成i
        quick_sort(q, j + 1, r);//不能换成i + 1
    }
    
    int main()
    {
        int n;
        scanf("%d", &n);
    
        for (int i = 0; i < n; i ++ ) scanf("%d", &q[i]);
    
        quick_sort(q, 0, n - 1);
    
        for (int i = 0; i < n; i ++ ) printf("%d ", q[i]);
    
        return 0;
    }
    
  • 相关阅读:
    第二次作业
    第一次作业
    第三次作业
    第二次作业
    第一次作业
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
  • 原文地址:https://www.cnblogs.com/yuanyulin/p/14026720.html
Copyright © 2011-2022 走看看