426GYY9826 2022-02-26 22:07 采纳率: 50%
浏览 34

快速排序只有一次排序??

今天在复习排序算法的时候做了快速排序的代码,但是经过编译发现只进行了一次排序,但是我多次检查没有找出自己的错误,不知道自己哪里出现了问题。希望广大的网友能够伸出援助之手。

//快速排序 
void QickSort(int nums[N],int left,int right){//只进行了一次排序? 
    if(left<right){
        int temp;
        int i=left;
        int j=right;
        int x=nums[left];//选定第一个数值作为基准
        while(i<j){ 
            while(i<j && nums[j]>=x){//找出右边小于基准的数组元素 
                j--;//指向小于基准的数值 
            }
            while(i<j && nums[i]<=x){//找出左边大于基准的数组元素 
                i++;//指向大于基准的数值 
            } 
            if(i<j){//交换左边大于基准的数值与右边小于基准的数值的位置 
                temp=nums[j];//存储小于基准的数值 
                nums[j]=nums[i];
                nums[i]=temp;
            }
        }
        //找到基准所在数组的准确位置并且发生交换 
            nums[left]=nums[i];
            nums[i]=x;
                
        QickSort(&nums[N],left,i-1);//左边(小于)基准数组 
        QickSort(&nums[N],i+1,right); //右边(大于)基准数组
    }  
}
输入数据:12 18 9 20 13 4
输出结果: 9 12 18 20 13
  • 写回答

2条回答 默认 最新

  • [PE]经典八炮 2022-02-26 22:11
    关注

    25行,26行不对,&nums[N]是什么鬼?把那个直接改成nums

    评论

报告相同问题?

问题事件

  • 创建了问题 2月26日

悬赏问题

  • ¥18 help me! 希望大家来看看 吉~
  • ¥15 C++显示超限兔子集结
  • ¥15 sql server 2012的下载出错
  • ¥15 图像识别用户软件开发
  • ¥20 类原生rom lineageos
  • ¥15 有没有会做中专,云计算,卷子的,有偿一百块
  • ¥15 HC32串口DMA循环发送数据
  • ¥15 Uni-App实现飞书授权登陆
  • ¥50 Qt应用中如何通过代码打开开发者工具devtools
  • ¥20 mpp硬解码h264转为yuv