柿子饼同学 发表于 2022-6-3 21:00:52

快排出现错误

本帖最后由 柿子饼同学 于 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 < mid){
                        i++;
                }
                while(nums > mid){
                        j--;
                }
                if(i <= j){
                        swap(nums, nums);
                        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 << ' ';
      }
      return 0;
}
检查好几遍了, 还是不知道问题所在...
求帮助~

傻眼貓咪 发表于 2022-6-4 09:15:40

有报错信息吗?

jhq999 发表于 2022-6-4 09:33:30

本帖最后由 jhq999 于 2022-6-4 10:04 编辑

没看出什么毛病

柿子饼同学 发表于 2022-6-4 21:42:52

傻眼貓咪 发表于 2022-6-4 09:15
有报错信息吗?

就这样

柿子饼同学 发表于 2022-6-4 21:43:30

jhq999 发表于 2022-6-4 09:33
没看出什么毛病

没有报错 , 只是打印不全

jhq999 发表于 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++){

柿子饼同学 发表于 2022-6-4 22:09:49

jhq999 发表于 2022-6-4 21:58
第一个数是输入的数据的数量,后面才是排序的数据
5 3 2 1 5 4
1 2 3 4 5


哦哦哦哦哦哦我忘了哈哈哈哈{:10_266:}
页: [1]
查看完整版本: 快排出现错误