zoukankan      html  css  js  c++  java
  • 算法笔记 --- Merge Sort

    #include <iostream>
    
    using namespace std;
    class MergeSort {
    public:
        int* mergeSort(int* A, int n) {
            mergeSortRecursive(A, 0, n);
            return A;
        }
        void mergeSortRecursive(int* A, int index_beg, int index_end){
            if(index_end - index_beg > 1){
                int median = (index_beg + index_end)/2;
                mergeSortRecursive(A, index_beg, median);
                mergeSortRecursive(A, median, index_end);
                merge(A, index_beg, median, index_end);
            }
        }
        void merge(int* A, int index_beg, int median, int index_end){
            int index1 = index_beg;
            int index2 = median;
            int sort_tmp[100];
            int index_tmp = 0;
            while(index1 < median && index2 < index_end){
                if(A[index1] < A[index2]){
                    sort_tmp[index_tmp++] = A[index1++];
                }else{
                    sort_tmp[index_tmp++] = A[index2++];
                }
            }
            while(index1 < median)
                sort_tmp[index_tmp++] = A[index1++];
            while(index2 < index_end)
                sort_tmp[index_tmp++] = A[index2++];
            for(int i = index_beg; i < index_end; i++){
                A[i] = sort_tmp[i - index_beg];
            }
        }
    };
    int main()
    {
        int a[6] = {1, 5, 7, 2, 9, 4};
        int* res;
        MergeSort sorter;
        res = sorter.mergeSort(a, 6);
        cout<<"after sorting:"<<endl;
        for(int i = 0; i < 6; i++){
            cout<<res[i]<<" ";
        }
        cout<<endl;
       
        return 0;
    }
  • 相关阅读:
    前端开发经验总结
    开发组件的原则
    jQuery deferred对象API详解
    prototype、constructor那点事儿
    text-overflow:ellipsis的那点事儿
    9 个超实用的 jQuery 代码片段
    BFC
    Console命令详解,让调试js代码变得更简单
    前端css规范
    什么是FOUC?如何避免FOUC?
  • 原文地址:https://www.cnblogs.com/zhongzhiqiang/p/5791086.html
Copyright © 2011-2022 走看看