最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言分治法實現(xiàn)歸并排序

 更新時間:2018年08月16日 10:39:25   作者:LCYong_  
這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)歸并排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現(xiàn)歸并排序的具體代碼,供大家參考,具體內(nèi)容如下

歸并排序的基本思想:

將兩個及其以上的有序表合并為一張有序表,把待排序序列通過分治法分為若干個有序子序列,然后每兩個子序列合并為一個子序列,經(jīng)過多次合并后整合為一張有序表。

排序過程如圖:

代碼如下:

#include "stdio.h"
#define MAX 100
int is1[MAX],is2[MAX];//原數(shù)組is1,臨時空間數(shù)組is2
void merge(int low,int mid,int high){
  int i=low,j=mid+1,k=low;
  while(i<=mid&&j<=high)
    if(is1[i]<is1[j])
      is2[k++]=is1[i++];
    else
      is2[k++]=is1[j++];
  while(i<=mid)
    is2[k++]=is1[i++];
  while (j<=high)
    is2[k++]=is1[j++];
  for ( i = low; i <=high ; i++) {
    is1[i]=is2[i];
    printf("%5d",is1[i]);
  }
  printf("\n");
}
 
void mergeSort(int a, int b){
  if(a<b){
    int mid=(a+b)/2;
    mergeSort(a,mid);
    mergeSort(mid+1,b);
    merge(a,mid,b);
  }
}
 
void main(){
  int i,n;
  printf("請輸入元素個數(shù):");
  scanf("%d",&n);
  printf("請依次輸入每個元素:\n");
  for ( i = 1; i <=n ; ++i) {
    scanf("%d",&is1[i]);
  }
  mergeSort(1,n);
  printf("排序后的序列為:\n");
  for ( i = 1; i <=n ; ++i) {
    printf("%4d",is1[i]);
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++ static詳解,類中的static用法說明

    C++ static詳解,類中的static用法說明

    這篇文章主要介紹了C++ static詳解,類中的static用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 淺析C語言中strtol()函數(shù)與strtoul()函數(shù)的用法

    淺析C語言中strtol()函數(shù)與strtoul()函數(shù)的用法

    這篇文章主要介紹了淺析C語言中strtol()函數(shù)與strtoul()函數(shù)的用法,注意其將字符串轉(zhuǎn)換成long型的區(qū)別,需要的朋友可以參考下
    2015-08-08
  • C++的optional用法實例詳解

    C++的optional用法實例詳解

    編程中我們可能會遇到要處理可能為空的變量,比如說容器,基本類型,或者說對象實例,下面通過實例代碼介紹C++的optional用法,感興趣的朋友一起看看吧
    2024-02-02
  • C語言使用順序表實現(xiàn)電話本功能

    C語言使用順序表實現(xiàn)電話本功能

    這篇文章主要為大家詳細(xì)介紹了C語言使用順序表實現(xiàn)電話本功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C++實現(xiàn)郵件群發(fā)的方法

    C++實現(xiàn)郵件群發(fā)的方法

    這篇文章主要介紹了C++實現(xiàn)郵件群發(fā)的方法,較為詳細(xì)的分析了郵件發(fā)送的原理與C++相關(guān)實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-07-07
  • Atom安裝配置C/C++詳細(xì)教程

    Atom安裝配置C/C++詳細(xì)教程

    Atom (一款開源的代碼編輯器)是github專門為程序員推出的一個跨平臺文本編輯器。這篇文章主要介紹了Atom安裝配置C/C++教程,需要的朋友可以參考下
    2020-05-05
  • C++強(qiáng)制轉(zhuǎn)換與智能指針示例詳解

    C++強(qiáng)制轉(zhuǎn)換與智能指針示例詳解

    這篇文章主要介紹了C++強(qiáng)制轉(zhuǎn)換與智能指針示例,智能指針(Smart Pointer)是一種抽象的數(shù)據(jù)類型。在程序設(shè)計中,它通常是經(jīng)由類模板來實現(xiàn),借由模板來達(dá)成泛型,借由類別的析構(gòu)函數(shù)來達(dá)成自動釋放指針?biāo)赶虻拇鎯ζ骰驅(qū)ο?/div> 2022-11-11
  • c++中為什么可以通過指針或引用實現(xiàn)多態(tài)詳解

    c++中為什么可以通過指針或引用實現(xiàn)多態(tài)詳解

    這篇文章主要給大家介紹了關(guān)于c++中為何可以通過指針或引用實現(xiàn)多態(tài),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 超詳細(xì)分析C語言動態(tài)內(nèi)存管理問題

    超詳細(xì)分析C語言動態(tài)內(nèi)存管理問題

    動態(tài)內(nèi)存是相對靜態(tài)內(nèi)存而言的。所謂動態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存,本文帶你深入探究C語言中動態(tài)內(nèi)存的管理
    2022-04-04
  • 深入Windows下的回車是回車換行(\r\n)還是換行回車(\n\r)的詳解

    深入Windows下的回車是回車換行(\r\n)還是換行回車(\n\r)的詳解

    本篇文章對Windows下的回車是回車換行(\r\n)還是換行回車(\n\r)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05

最新評論

尚义县| 北安市| 庆城县| 出国| 陇川县| 肇庆市| 满城县| 微博| 沂源县| 宁强县| 额尔古纳市| 屏南县| 霍城县| 武义县| 彝良县| 甘肃省| 西吉县| 香河县| 彰化市| 乌拉特后旗| 西安市| 东乡族自治县| 石景山区| 霍林郭勒市| 安岳县| 梧州市| 辉南县| 吉木萨尔县| 遵化市| 隆昌县| 蚌埠市| 廊坊市| 金昌市| 分宜县| 依兰县| 眉山市| 崇义县| 永年县| 开原市| 开鲁县| 苏州市|