LintCode_464_整数排序||

来源:互联网 发布:下载淘宝网天猫商城 编辑:程序博客网 时间:2024/06/01 13:39

给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。

您在真实的面试中是否遇到过这个题? Yes
样例
给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]。

#include <iostream>#define MaxSize 10using namespace std;void merring(int *list1,int List1_Size,int *list2,int List2_Size){    int tmp[MaxSize];    int L1,L2,temp,m;    L1 = L2 = temp = 0;    while(L1<List1_Size && L2<List2_Size)    {        if(list1[L1] < list2[L2])            tmp[temp++] = list1[L1++];        else            tmp[temp++] = list2[L2++];    }    while(L1<List1_Size)        tmp[temp++] = list1[L1++];    while(L2<List2_Size)        tmp[temp++] = list2[L2++];    for(m=0;m<List1_Size + List2_Size;m++)        list1[m] = tmp[m];}//归并算法将规模搞小void merge_sort(int Arr[],int a){    if(a>1)    {        int *list1 = Arr;        int List1_Size = a/2;        int *list2 = Arr + List1_Size;        int List2_Size = a - List1_Size;        merge_sort(list1,List1_Size);        merge_sort(list2,List2_Size);        merring(list1,List1_Size,list2,List2_Size);    }}

归并排序

原创粉丝点击