华不注 2022-06-22 08:17 采纳率: 91.7%
浏览 63
已结题

洛谷 P1177 快速排序

洛谷P1177 快速排序

img


#include<iostream>
#include<cstdlib>
#include<ctime>

using namespace std;

int num[100010],n;

int get_mid(int left,int right){
    int pivot=rand()%(right-left+1)+left;
    swap(num[pivot],num[left]);
    int temp=num[left];    
    while(left<right){
        while(left<right && num[left]<=temp) left++;
        swap(num[left],num[right]);
        while(left<right && num[right]>temp) right--;
        swap(num[left],num[right]);
    }
    num[left]=temp;
    return left;
}

void quick_sort(int left,int right){
    if(left<right){
        int pos=get_mid(left,right);
        quick_sort(left,pos-1);
        quick_sort(pos+1,right);
    }
}

int main(){
    srand((unsigned)time(NULL));
    cin>>n;
    for(int i=1;i<=n;i++) cin>>num[i];
    quick_sort(0,n);
    for(int i=1;i<=n;i++) cout<<num[i]<<' ';
}

/*
    8
    1 5 7 4 6 3 2 8
*/


  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月28日
  • 已采纳回答 7月20日
  • 创建了问题 6月22日

悬赏问题

  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图