您的位置:首页 > 其它

插入排序与归并排序

2013-04-23 21:16 204 查看
#include <iostream>
using namespace std;

void insertSort(int a[],int n){
for(int j = 1; j < n ;j++){
int key = a[j];
int i = j - 1;
while(i >= 0 && a[i] > key){
a[i + 1] = a[i];
i--;
}
a[i + 1] = key;
}
}

int main()
{
int a[6] = {7,6,3,1,2,5};
insertSort(a,6);
for(int i = 0;i < 6;i++)
cout << a[i] << " ";
system("pause");
return 0;
}
#include <iostream>
using namespace std;
const int max_int  = 0x7fffffff;
void merge(int a[],int p,int q,int r){
int n1 = q - p + 1;
int n2 = r - q;
int *L = new int[n1 + 1];
int *R = new int[n2 + 1];
int i,j,k;
for(i = 0 ; i < n1 ; i++)
L[i] = a[p + i];
for(j = 0 ; j < n2; j++)
R[j] = a[q + j +1];
L[n1] = max_int;
R[n2] = max_int;
i = 0;
j = 0;
for(k = p ; k <= r ; k++)
if(L[i] <= R[j]){
a[k] = L[i];
i++;
}else{
a[k] = R[j];
j++;
}
}

void mergeSort(int a[],int p,int r){
if(p < r){
int q =  (p + r) / 2;
mergeSort(a,p,q);
mergeSort(a,q + 1,r);
merge(a,p,q,r);
}
}

int main()
{
int a[]={7,3,2,5,1,4,5,9,100,1};
mergeSort(a,0,9);
for(int i = 0;i < 10 ; i++)
cout << a[i] << "  ";
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐