zoukankan      html  css  js  c++  java
  • 快排

    #include <bits/stdc++.h>
    using namespace std;
    int n,a[100000];
    void quick_sort(int a[], int l, int r) {
        if (l < r) {
            int i = l, j = r, x = a[l];
            while (i < j) {
                while (i < j && a[j] >= x) // 从右向左找第一个小于x的数
                    j--;
                if (i < j)
                    a[i++] = a[j];
                while (i < j && a[i] < x) // 从左向右找第一个大于等于x的数
                    i++;
                if (i < j)
                    a[j--] = a[i];
            }
            a[i] = x;
            quick_sort(a, l, i - 1);
            quick_sort(a, i + 1, r);
        }
    }
    int main() {
        scanf("%d", &n);
        for (int i = 1; i <= n; i++) {
            scanf("%d", &a[i]);
        }
        quick_sort(a, 1, n);
        for (int i = 1; i <= n; i++) {
            printf("%d
    ", a[i]);
        }
    }
    
    #include <bits/stdc++.h>
    using namespace std;
    int n,a[100000];
    void quick_sort(int l,int r)//应用二分思想
    {
        //rand() % (right - left + 1) + left;
        int mid=a[rand() % (r- l+ 1) + l];
        //int mid = a[(l + r) / 2];//中间数
        int i = l, j = r;
        do {
            while (a[i] < mid) i++;//查找左半部分比中间数大的数
            while (a[j] > mid) j--;//查找右半部分比中间数小的数
            if (i <= j)//如果有一组不满足排序条件(左小右大)的数
            {
                swap(a[i], a[j]);//交换
                i++;
                j--;
            }
        } while (i <= j);//这里注意要有=
        if (l < j) quick_sort(l, j);//递归搜索左半部分
        if (i < r) quick_sort(i, r);//递归搜索右半部分
    }
    int main() {
        scanf("%d", &n);
        for (int i = 1; i <= n; i++) {
            scanf("%d", &a[i]);
        }
        quick_sort(1, n);
        for (int i = 1; i <= n; i++) {
            printf("%d ", a[i]);
        }
    }
    
  • 相关阅读:
    vsftp部署和优化错误
    部署和调优 1.6 vsftp部署和优化-2
    部署和调优 1.5 vsftp部署和优化-1
    部署和调优 1.3 pureftp部署和优化-2
    Linux一些常用软件的源码安装
    SecureCrt 利用公匙登录L机取消密码登录。
    利用任务自动上传备份。
    Mysql Too Many Connections问题解决
    Linux ---pptpd部署
    Sed简单入门实例
  • 原文地址:https://www.cnblogs.com/Accpted/p/12837440.html
Copyright © 2011-2022 走看看