左神基础课-归并排序

先输入一个数: 表示有几个数要排序

然后每次输入一个数

输出 排序好的数

#include 
#include 
#include 
using namespace std;
void mergeSort(int* arr,int i, int j);
template
int getlength(T& arr);
void show(int* arr,int n);
void sortProcess(int* arr,int i,int mid,int j);
int* generateRandomArr(int size, int value_a,int value_b);
int main(){
	int n;
	// int* arr = generateRandomArr(20,0,10);
	int a[]={1,2,3,4,6,8};
	// 指针a不行
	//int* a = new int[7];
	//cout << sizeof(a)/sizeof(a[0]);
	// cout << getlength(a);
	
	while(cin >> n){
		int i=0;
		int* arr = new int[n];
		while(i> arr[i];
			if(arr[i]<0 || arr[i]>100)
				return 0;
			i++;
		}	
		if(arr == nullptr ){
			return 0;
		}
		mergeSort(arr,0,n-1);
		show(arr,n);
	}
	return 0;
}
void mergeSort(int* arr,int i, int j){
	//我之前忘记递归的终止条件了
	if(i==j){
		return ;
	}
	//注意这里的取中值
	int mid = i + ((j-i)>>1) ;
	mergeSort(arr,i,mid);
	mergeSort(arr,mid+1,j);
	sortProcess(arr, i, mid, j);
}
void sortProcess(int* arr,int i,int mid, int j){
	int length = j-i+1;
	int* help = new int[length];
	int p1=i;
	int p2=mid+1;
	int l=0;
	while(p1<=mid && p2<=j){
		if(arr[p1]
int getlength(T& arr){
	return sizeof(arr)/sizeof(arr[0]);
}

 

你可能感兴趣的:(左神基础班代码,C++)