蓝月

锐意进取,谁与争锋!

归并排序
#include<iostream>


using namespace std; 


void depart(int array[],int start,int last);
void sort(int array[],int start,int center,int last);
void view(int array[],int length);


int main(int argc,char** argv){

int length;
cin >> length;
int data[length];

for(int i = 0;i < length;i++){

cin >> data[i];
}

depart(data,0,length - 1);
view(data,length);

return 0;
}


void depart(int array[],int start,int last){

if(last > start){

int center = (last - start) / 2 + start;
depart(array,start,center);
depart(array,center + 1,last);
sort(array,start,center,last);
}
}


void sort(int array[],int start,int center,int last){

int length1 = center - start + 1;
int length2 = last - center;

int array1[length1 + 1];
int array2[length2 + 1];
array1[length1] = 10000;
array2[length2] = 10000;

for(int i = 0;i < length1;i++){

array1[i] = array[i + start];
}

for(int i = 0;i < length2;i++){

array2[i] = array[i + center + 1];
}

int m = 0,n = 0;

for(int i = start;i <= last;i++){

if(array1[m] < array2[n]){

array[i] = array1[m];
m++;

}else{

array[i] = array2[n];
n++;
}
}
}


void view(int array[],int length){

for(int i = 0;i < length;i++){

cout << array[i] << "  ";
}

cout << endl << endl;

}



阅读更多
版权声明: https://blog.csdn.net/ITlanyue/article/details/80341541
个人分类: C++ C 算法
想对作者说点什么? 我来说一句

归并排序 sort 计算机排序算法

2009年12月17日 876KB 下载

没有更多推荐了,返回首页

不良信息举报

归并排序

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭