鱼C论坛

 找回密码
 立即注册
查看: 1807|回复: 6

[已解决]快排出现错误

[复制链接]
发表于 2022-6-3 21:00:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 柿子饼同学 于 2022-6-3 22:43 编辑
#include <bits/stdc++.h>
using namespace std;

vector<int> nums;

void qs(vector<int> & nums, int l, int r){
        
        int i = l, j = r, mid = nums[(l+r)/2];
        while(i <= j){
                while(nums[i] < mid){
                        i++;
                }
                while(nums[j] > mid){
                        j--;
                }
                if(i <= j){
                        swap(nums[i], nums[j]);
                        i++; j--;
                }
        }
        if(i < r){
                qs(nums, i, r);
        }
        if(l < j){
                qs(nums,l, j);
        }
}

int main(){
        ios::sync_with_stdio(0);
        int n;
        cin >> n;
        for(int i = 0; i < n; i++){
                int temp;
                cin >> temp;
                nums.push_back(temp);
        }

        qs(nums, 0, nums.size()-1);
        
        for(int i = 0; i < n; i++){
                cout << nums[i] << ' ';
        }
        return 0;
}
检查好几遍了, 还是不知道问题所在...
求帮助~
最佳答案
2022-6-4 21:58:44
本帖最后由 jhq999 于 2022-6-4 22:02 编辑
柿子饼同学 发表于 2022-6-4 21:43
没有报错 , 只是打印不全


第一个数是输入的数据的数量,后面才是排序的数据
5 3 2 1 5 4
1 2 3 4 5

4 6 9 6 9
6 6 9 9
cin >> n;
        for(int i = 0; i < n; i++){
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-4 09:15:40 From FishC Mobile | 显示全部楼层
有报错信息吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-4 09:33:30 | 显示全部楼层
本帖最后由 jhq999 于 2022-6-4 10:04 编辑

没看出什么毛病
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-4 21:42:52 | 显示全部楼层

就这样
屏幕截图 2022-06-04 214227.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-4 21:43:30 | 显示全部楼层
jhq999 发表于 2022-6-4 09:33
没看出什么毛病

没有报错 , 只是打印不全
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-4 21:58:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2022-6-4 22:02 编辑
柿子饼同学 发表于 2022-6-4 21:43
没有报错 , 只是打印不全


第一个数是输入的数据的数量,后面才是排序的数据
5 3 2 1 5 4
1 2 3 4 5

4 6 9 6 9
6 6 9 9
cin >> n;
        for(int i = 0; i < n; i++){
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-4 22:09:49 | 显示全部楼层
jhq999 发表于 2022-6-4 21:58
第一个数是输入的数据的数量,后面才是排序的数据
5 3 2 1 5 4
1 2 3 4 5

哦哦哦哦哦哦我忘了哈哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 12:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表