-->
当前位置:首页 > 题库 > 正文内容

程序填空题:归并排序

Luz4年前 (2021-05-10)题库558
完成程序填空,实现归并排序(递归方法)。

```c++
#include
#include
using namespace std;

void mergeSort(vector &Array, int start, int end);
void merge(vector &Array, int start, int mid, int end);

int main(){

int n;
vector a;
vector::iterator i;

//输入数组
cin >> n;
a.resize(n);
for(i = a.begin(); i != a.end(); i++){
cin >> *i;
}

//归并排序
mergeSort(a, 0, a.size()-1);

//输出数组
i = a.begin();
cout << *i++;
for( ; i != a.end(); i++){
cout << " " << *i;
}

return 0;
}

void mergeSort(vector &Array, int start, int end) {
if (start >= end)

int mid = ;



}

void merge(vector &Array, int start, int mid, int end) {


int i = start, j = mid+1, k = 0;
vector temp(end - start +1);

while(i <= mid && j<= end){
if(Array[i] <= Array[j]){

}
else{

}
}

while(i <= mid){

}

while(j <= end){

}


}

```






答案:
第1空:return;

第2空:(start + end) / 2

第3空:mergeSort(Array, start, mid);

第4空:mergeSort(Array, mid + 1, end);

第5空:merge(Array, start, mid, end);

第6空:temp[k++] = Array[i++];

第7空:temp[k++] = Array[j++];

第8空:temp[k++] = Array[i++];

第9空:temp[k++] = Array[j++];

第10空:copy(temp.begin(), temp.end(), Array.begin()+start);

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。