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

程序填空题:归并排序

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

```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);


发表评论

访客

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