传统题 1000ms 256MiB

MergeSort

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

Background

  归并排序的实现

Description

  请完成下述归并代码框架后提交,只需完成注释中的要求,无需输入输出

#include "MergeSort.h"
    
// 通过归并排序对int队列nums中的[left, right]区间进行升序排序
// @param
// nums: 完整的待排序队列,最终排序的结果应存放在nums中
// left: 当前排序区间的左端点
// right: 当前排序区间的右端点
void MergeSort::merge_sort_aux(std::vector<int> &nums, int left, int right)
{
    //请在这里完成你的代码
}

Samples

  提供一组样例用于自测

6
2 6 7 2 1 8 
1 2 2 6 7 8

Limits

  N106N\leq10^6,其中NN为待排序的元素个数

附 MergeSort.h

#pragma once
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <functional>

using namespace std;

class MySort {
public:
	virtual void mysort(std::vector<int>& nums) = 0;
};

class MergeSort : public MySort
{
public:
  // 通过归并排序对int队列nums中的[left, right]区间进行升序排序
  // @param
  // nums: 完整的待排序队列,最终排序的结果应存放在nums中
  // left: 当前排序区间的左端点
  // right: 当前排序区间的右端点
  void merge_sort_aux(std::vector<int> &nums, int left, int right);
  
  void mysort(std::vector<int> &nums)
  {
    int n = nums.size();
    merge_sort_aux(nums, 0, n - 1);
  }
};

实验一 栈、队列与基本排序

未认领
状态
已结束
题目
7
开始时间
2025-9-26 19:00
截止时间
2025-9-28 19:00
可延期
288 小时