zoukankan      html  css  js  c++  java
  • 自下而上归并排序 数组实现

    void mergeSort(int a[], int len)
    {
        int *temp = new int[len];
        int gap = 1;
        while (gap < len) {
            for (int i = 0; i < len; i += gap * 2)
            {
                int mid = i + gap > len - 1 ? len : i + gap;
                int end = mid + gap > len - 1 ? len : mid + gap;
                int j = i;
                int k = mid;
                int cur = i;
                while (j != mid && k != end)
                {
                    if (a[j] < a[k])
                        temp[cur++] = a[j++];
                    else
                        temp[cur++] = a[k++];
                }
                while (j != mid)
                    temp[cur++] = a[j++];
                while (k != end)
                    temp[cur++] = a[k++];
            }    
            for (int i = 0; i < len; ++i)
                a[i] = temp[i];
            gap = gap << 1;
        }    
        delete[] temp;
    }
  • 相关阅读:
    2021-4-1 日报博客
    2021-3-31 日报博客
    2021-3-30 日报博客
    2021-3-29 日报博客
    2021-3-27 周报博客
    java
    周末总结六
    java
    java
    java
  • 原文地址:https://www.cnblogs.com/sdlwlxf/p/5113258.html
Copyright © 2011-2022 走看看