欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++歸并排序算法實例

 更新時間:2014年10月09日 09:10:40   作者:果凍想  
這篇文章主要介紹了C++歸并排序算法實例,本文先是介紹了什么是歸并排序,然后給出了實現(xiàn)代碼,需要的朋友可以參考下

歸并排序

歸并排序算法是采用分治法的一個非常典型的應用。歸并排序的思想是將一個數(shù)組中的數(shù)都分成單個的;對于單獨的一個數(shù),它肯定是有序的,然后,我們將這些有序的單個數(shù)在合并起來,組成一個有序的數(shù)列。這就是歸并排序的思想。它的時間復雜度為O(N*logN)。

代碼實現(xiàn)

復制代碼 代碼如下:

#include <iostream>
using namespace std;
 
//將有二個有序數(shù)列a[first...mid]和a[mid...last]合并。
void mergearray(int a[], int first, int mid, int last, int temp[])
{
     int i = first, j = mid + 1;
     int m = mid,   n = last;
     int k = 0;
 
     while (i <= m && j <= n)
     {
          if (a[i] <= a[j])
               temp[k++] = a[i++];
          else
               temp[k++] = a[j++];
     }
 
     while (i <= m)
          temp[k++] = a[i++];
 
     while (j <= n)
          temp[k++] = a[j++];
 
     for (i = 0; i < k; i++)
          a[first + i] = temp[i];
}
void mergesort(int a[], int first, int last, int temp[])
{
     if (first < last)
     {
          int mid = (first + last) / 2;
          mergesort(a, first, mid, temp);    //左邊有序
          mergesort(a, mid + 1, last, temp); //右邊有序
          mergearray(a, first, mid, last, temp); //再將二個有序數(shù)列合并
     }
}
 
bool MergeSort(int a[], int n)
{
     int *p = new int[n];
     if (p == NULL)
          return false;
     mergesort(a, 0, n - 1, p);
     delete[] p;
     return true;
}
 
int main()
{
     int arr[] = {2, 1, 4};
     MergeSort(arr, 3);
 
     for (int i = 0; i < 3; ++i)
     {
          cout<<arr[i]<<" ";
     }
     cout<<endl;
}

相關(guān)文章

  • C++求兩數(shù)之和并返回下標詳解

    C++求兩數(shù)之和并返回下標詳解

    這篇文章主要介紹了C++求兩數(shù)之和并返回下標題目的代碼詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語言獲得電腦的IP地址的小例子

    C語言獲得電腦的IP地址的小例子

    C語言獲得電腦的IP地址的小例子,需要的朋友可以參考一下
    2013-05-05
  • C++ 中CListCtrl的每個項都顯示不同的提示信息

    C++ 中CListCtrl的每個項都顯示不同的提示信息

    這篇文章主要介紹了C++ 中CListCtrl的每個項都顯示不同的提示信息的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 一文詳解C++仿函數(shù)

    一文詳解C++仿函數(shù)

    本文主要介紹了一文詳解C++仿函數(shù),主要用途是提供一種靈活的方式來定義和操作數(shù)據(jù),下面就來介紹一下仿函數(shù)的使用,感興趣的可以了解一下
    2025-04-04
  • c語言 malloc函數(shù)詳解

    c語言 malloc函數(shù)詳解

    這篇文章主要介紹了c語言 malloc函數(shù)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 詳解C++中普通舊數(shù)據(jù)(POD)的使用

    詳解C++中普通舊數(shù)據(jù)(POD)的使用

    普通舊數(shù)據(jù)就是內(nèi)存中的連續(xù)字節(jié)序列,是能夠被“僅當作數(shù)據(jù)”處理的對象。這篇文章主要帶大家了解一下C++中普通舊數(shù)據(jù)的定義與使用,感興趣的可以了解下
    2023-03-03
  • 基于C語言實現(xiàn)簡單學生成績管理系統(tǒng)

    基于C語言實現(xiàn)簡單學生成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了基于C語言實現(xiàn)簡單學生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C語言基礎(chǔ)知識點解析(extern,static,typedef,const)

    C語言基礎(chǔ)知識點解析(extern,static,typedef,const)

    本篇文章是對C語言基礎(chǔ)知識點(extern,static,typedef,const)的用法進行了詳細的分析介紹,需要的朋友可以過來參考下
    2013-10-10
  • C語言中static的作用及C語言中使用靜態(tài)函數(shù)有何好處

    C語言中static的作用及C語言中使用靜態(tài)函數(shù)有何好處

    在C語言中,static的作用有三條:一是隱藏功能,二是保持持久性功能,三是默認初始化為0。本文重點給大家介紹C語言中static的作用及c語言中使用靜態(tài)函數(shù)有何好處,對本文感興趣的朋友一起看看吧
    2015-11-11
  • C/C++實現(xiàn)詞法分析程序的示例代碼

    C/C++實現(xiàn)詞法分析程序的示例代碼

    這篇文章主要為大家詳細介紹了如何基于C/C++實現(xiàn)一個簡單的詞法分析程序,并通過完成詞法分析程序,了解詞法分析的過程,感興趣的小伙伴可以跟隨小編一起學習學習
    2023-05-05

最新評論