zoukankan      html  css  js  c++  java
  • C++归并排序示例

    /*
     * description:        归并排序示例
     * writeby:            nick
     * date:            2012-10-23 16:35
     *
     */
    
    #include <iostream>
    #define maxN 10
    
    using namespace std;
    
    template <class Item>
    void merge(Item a[], int l, int m, int r)
    {
        int i,j;
        Item tmp[maxN];
        for(i=l; i<=m; i++) tmp[i] = a[i];   //   /
        for(j=m+1; j<=r; j++) tmp[m+1+r-j] = a[j]; 
        i=l; j=r;
        for(int k=l; k<=r; k++)
            a[k] = (tmp[i]<tmp[j])? tmp[i++] : tmp[j--];
    }
    
    template <class Item>
    void mergesort(Item a[], int l, int r)
    {
        if(r <= l) return;
        int m = (r+l) / 2;
        mergesort(a, l, m);
        mergesort(a, m+1, r);
        merge(a, l, m, r);
    }
    
    int main()
    {
        int a[10] = {0,2,8,1,3,6,4,5,7,9};
        mergesort(a, 0, 9);
    
        for(int i=0; i<10; i++)
            cout << a[i] << " ";
    
        return 0;
    }
  • 相关阅读:
    Centos下 安装和测试kafka
    Java枚举
    Java 数组
    Java变量
    Java标识符
    Java修饰符
    java 基本语法
    Java 基础语法
    Java开发工具
    JAVA 发展历史
  • 原文地址:https://www.cnblogs.com/wouldguan/p/2737417.html
Copyright © 2011-2022 走看看