zoukankan      html  css  js  c++  java
  • Merge Sort

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4030019.html

    算法导论第二章的归并排序,注意在merge步骤时,要开辟临时数组保存两个数组排序候的结果,然后在把临时数组逐个导入待排序数组中。

    代码如下:

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <vector>
     4 using namespace std;
     5 void merge(vector<int> &arr, int s1, int e1,  int e2)
     6 {
     7     int p1 = s1;
     8     int p2 = e1+1;
     9     vector<int> tmp;
    10     while( p1 <= e1 && p2 <= e2 )
    11     {
    12         if( arr[p1] < arr[p2] )
    13         {
    14             tmp.push_back(arr[p1]);
    15             p1++;
    16         }
    17         else
    18         {
    19             tmp.push_back(arr[p2]);
    20             p2++;
    21         }
    22     }
    23     while( p2 <= e2 )
    24     {
    25         tmp.push_back(arr[p2]);
    26         p2++;
    27     }
    28     while(p1 <= e1)
    29     {
    30         tmp.push_back(arr[p1]);
    31         p1++;
    32     }
    33     int j = 0;
    34     for( int i = s1 ; i <= e2 ; i++ )
    35     {
    36         arr[i] = tmp[j++];
    37     }
    38 }
    39 
    40 void mergesort(vector<int> &arr, int s, int e)
    41 {
    42     if( s < e )
    43     {
    44         int mid = (s+e)/2;
    45         mergesort(arr, s, mid);
    46         mergesort(arr, mid+1,e);
    47         merge(arr, s, mid, e);
    48     }
    49 }
    50 
    51 int main(int argc, char *argv[])
    52 {
    53     vector<int> a; 
    54     int n;
    55     cin>>n;
    56     for( int i = 0 ; i < n ;i++  )
    57     {
    58         int tmp;
    59         cin>>tmp;
    60         a.push_back(tmp);
    61     }
    62     mergesort(a, 0, n-1);
    63     for( int i = 0 ; i < n ; i++ )
    64     {
    65         cout<<a[i]<<" ";
    66     }
    67     cout<<endl;
    68 }
    View Code
  • 相关阅读:
    vgcreate语法
    lsmod语法
    lvm语法2
    lvm语法
    mount语法
    fdisk语法
    mdadm语法
    ln语法
    mknod语法
    黑客常用dos-cmd命令
  • 原文地址:https://www.cnblogs.com/jostree/p/4030019.html
Copyright © 2011-2022 走看看