文章

14

粉丝

0

获赞

9

访问

972

头像
快排和二分查找
备考笔记
发布于2025年2月27日 11:01
阅读数 40

#include<stdio.h>
#include<string.h>
#include<bits/stdc++.h>
using namespace std;

void Quick_Sort(int a[],int start, int end)//从小到大 
{
    if(start>=end) return;//id输入错误
    int left = start,right = end,x = a[start];//以最左端为base 
    while(left<right)
    {
        while(left<right && a[right] >= x)right--;//从右往左遍历,右端都应该大于base 
        a[left] = a[right];//比base小的替换到base当前的位置,同时base交换到它的位置
        //但是不需要实际上的交换,因为base的值一直存在于x变量中
        //之后我们从左端的被替换位开始,找比base大的 ,无需关心替换位的值(其实理论上一直是base) ,
        //因为反正下一次会被覆盖 
        while(left<right && a[left] <=x )left++;
        a[right] = a[left];
    }
    //...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发