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

C++編程歸并排序算法實現(xiàn)示例

 更新時間:2021年11月18日 11:28:12   作者:xr415  
這篇文章主要為大家介紹了C++編程歸并排序算法實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

歸并算法開始首先要對一段要有序的數(shù)字進(jìn)行排序

void merg_sort(int* a, int fbegin, int fend, int sbegin, int send, int* b)
{
	int L = fbegin;
	int R = sbegin;
	int cursize = fbegin;//z這里不能重0開始 遞歸后面是按對應(yīng)開始位置進(jìn)行賦值的 
	while (L <= fend && R <= send)
	{
		if (a[L] > a[R])
		{
			b[cursize++] = a[R++];
		}
		else
		{
			b[cursize++] = a[L++];
		}
	}
	while (L <= fend)
	{
		b[cursize++] = a[L++];
	}
	while (R <= send)
	{
		b[cursize++] = a[R++];
	}
	memcpy(a+fbegin, b+fbegin, sizeof(int) * (send-fbegin+1));
  //要開始位置進(jìn)行賦值不然后面遞歸會造成重復(fù)對同一個地方賦值 
}

然后通過遞歸將要排數(shù)字進(jìn)行左右分開 直到分為都是一個元素的時候(一個元素一定是有序的)

void Merg_sort(int* a, int left, int right, int* b)
{
 	int min = (left + right) / 2;
	if (left < right) 
	{
		Merg_sort(a, left, min, b);//將左邊的分開
		Merg_sort(a, min + 1, right, b);//將右邊的分開
		merg_sort(a, left, min, min + 1, right, b);//逆過程 先分開后排序 后分開的先排序 
	}
}

最后代碼演示

int main()
{
 	int a[10] = { 1,3,4,9,9,2,4,15,17,10 };
	int b[10];
	Merg_sort(a, 0, 9, b);
	for (int i = 0; i < 10; i++)
	{
		printf("%d\t", a[i]);
	}
	return 0;
}

結(jié)果

1       2       3       4       4       9       9       10      15      17
--------------------------------
Process exited after 0.2193 seconds with return value 0
請按任意鍵繼續(xù). . .

以上就是C++編程歸并排序算法實現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于C++歸并排序算法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于C語言實現(xiàn)五子棋游戲

    基于C語言實現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了基于C語言實現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C語言超詳細(xì)解析函數(shù)棧幀

    C語言超詳細(xì)解析函數(shù)棧幀

    在C語言中,每一個正在運行的函數(shù)都有一個棧幀與其對應(yīng),棧幀中存儲的是該函數(shù)的返回地址和局部變量。從邏輯上講,棧幀就是一個函數(shù)執(zhí)行的環(huán)境:函數(shù)參數(shù)、函數(shù)的局部變量、函數(shù)執(zhí)行完后返回到哪里等等
    2022-03-03
  • 你只用do-while來實現(xiàn)循環(huán)?太浪費了

    你只用do-while來實現(xiàn)循環(huán)?太浪費了

    這篇文章主要介紹了你只用do-while來實現(xiàn)循環(huán)?太浪費了,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • C語言指針筆試題全面解析

    C語言指針筆試題全面解析

    這篇文章主要介紹了C語言指針筆試題全面解析,介紹了其相關(guān)概念,然后分享了幾種用法,具有一定參考價值。需要的朋友可以了解下。
    2021-09-09
  • C,C++中常用的操作字符串的函數(shù)

    C,C++中常用的操作字符串的函數(shù)

    這篇文章主要介紹了C,C++中常用的操作字符串的函數(shù),需要的朋友可以參考下
    2017-09-09
  • C語言中#pragma?once的作用

    C語言中#pragma?once的作用

    這篇文章主要介紹了C語言中#pragma?once的作用,pragma once 一般由編譯器提供保證,更多相關(guān)內(nèi)容在下面文章詳細(xì)展開需要的小伙伴可以參考一下
    2022-05-05
  • C++反射的一種實現(xiàn)方法詳解

    C++反射的一種實現(xiàn)方法詳解

    這篇文章主要給大家介紹了關(guān)于C++反射的一種實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 如何用C寫一個web服務(wù)器之GCC項目編譯

    如何用C寫一個web服務(wù)器之GCC項目編譯

    本文主要介紹了,如何用C寫一個web服務(wù)器,Linux下用GCC進(jìn)行項目編譯,對此感興趣的同學(xué),可以參考下。
    2021-05-05
  • C++?stack用法總結(jié)(示例詳解)

    C++?stack用法總結(jié)(示例詳解)

    std::stack?是?C++?標(biāo)準(zhǔn)模板庫(STL)中的容器適配器,它提供了棧(stack)的功能,基于其他序列容器實現(xiàn),下面給大家介紹std::stack?的用法總結(jié),感興趣的朋友一起看看吧
    2024-01-01
  • 深入了解C++中map用法

    深入了解C++中map用法

    下面小編就為大家?guī)硪黄钊肓私釩++中map用法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨想過來看看吧
    2016-06-06

最新評論

曲松县| 龙游县| 宽甸| 呼伦贝尔市| 富平县| 昌乐县| 齐河县| 高阳县| 垦利县| 赤城县| 玉山县| 英吉沙县| 石城县| 年辖:市辖区| 上犹县| 九江市| 上杭县| 安吉县| 广昌县| 九江县| 大庆市| 西丰县| 顺义区| 齐齐哈尔市| 巫溪县| 淄博市| 柳林县| 谢通门县| 台湾省| 景东| 双流县| 贵溪市| 奉贤区| 鄂尔多斯市| 安新县| 田阳县| 宜兴市| 麻栗坡县| 中江县| 宁阳县| 偏关县|