`
bbsunchen
  • 浏览: 231589 次
  • 性别: Icon_minigender_1
  • 来自: 天朝帝都
社区版块
存档分类
最新评论

算法修炼之道:merge sort by c++(归并排序C++语言实现)

阅读更多

 

int d[100] = {0};
int s[10] = {32, 21, 67, 11, 5, 43, 99, 18, 22, 87};

void merg(int left,int right){
	int mid=(left+right)/2;
	int i=left,j=mid+1,k=0;
	while(i<=mid&&j<=right)
	{
		if(s[i]<s[j])
		{
			d[k++]=s[i++];
		}
		else
		{
			d[k++]=s[j++];
		} 
	}

	while(i<=mid)d[k++]=s[i++];
	while(j<=right)d[k++]=s[j++];
	for(i=left,k=0;i<=right;i++,k++)s[i]=d[k];
}
void mergesort(int left,int right){
	if(left<right){
		int mid=(left+right)/2;
		mergesort(left,mid);
		mergesort(mid+1,right);
		merg(left,right);
	}
}

int main()
{
	mergesort(0,9);
	for(int i = 0; i < 10; i++)
	{
		cout << s[i] << endl;
	}
	return 0;
}

 分+治+合之典范

注意,算法的时候,可以申请一些全局的大数组。

但是如果做工程,外面自己先声明下 然后再把这个数组指针传进函数里

0
0
分享到:
评论

相关推荐

    归并排序C++实现的例子

    归并排序(Merge Sort)是一种高效的排序算法,其主要基于分治法(Divide and Conquer)的思想。在C++中实现归并排序,我们需要理解以下几个关键知识点: 1. **分治法**:分治法是计算机科学中常用的一种算法设计...

    c++实现归并排序与快速排序运行时间比较

    本文将深入探讨两种广泛应用的排序算法——归并排序(Merge Sort)和快速排序(Quick Sort),并结合C++语言实现进行性能比较。 归并排序是一种基于分治策略的排序算法。其基本思想是将大问题分解为小问题,再将...

    C++归并排序与快速排序实现.zip

    本资料包“C++归并排序与快速排序实现.zip”主要关注两种经典的排序算法:归并排序(Merge Sort)和快速排序(Quick Sort)。下面我们将详细探讨这两种排序算法以及如何用C++实现它们。 **归并排序(Merge Sort)**...

    基于C++实现的七种排序算法源代码及性能评估报告,基于C++实现的冒泡排序、选择排序、插入排序、归并排序、快速排序、计数排序、基数排序

    本报告记录了使用 C++ 初步实现的七种排序算法的基本原理及其在实际样例下的性能评估结果。这些算法包括: 冒泡排序(Bubble Sort) 选择排序(Selection Sort) 插入排序(Insertion Sort) 归并排序(Merge Sort)...

    C++典型的归并排序

    ### C++实现典型的归并排序算法 #### 一、引言 归并排序是一种非常高效且稳定的排序算法,它基于分治法的思想,通过将数组分成越来越小的部分,然后逐步合并这些部分来达到最终排序的目的。本文将详细介绍如何在C++...

    归并排序算法实现

    归并排序(Merge Sort)是一种基于分治策略的高效排序算法。它的基本思想是将待排序的序列分成两部分,分别进行排序,然后再将两个已排序的部分合并成一个有序序列。这种算法的时间复杂度为O(n log n),在处理大量...

    c++排序算法及实现思路

    在编程领域,C++是一种广泛使用的面向对象的编程语言,其强大的性能和灵活性使得它在处理数据和算法实现上有着广泛的应用。在这个主题中,我们将深入探讨C++中的排序算法及其实现思路。排序是计算机科学中一个基础且...

    归并和快速排序c程序实现

    这里我们将深入探讨两种常见的排序算法:归并排序(Merge Sort)和快速排序(Quick Sort)。这两种都是基于分治策略的高效排序算法。 **归并排序**: 归并排序是一种稳定的排序算法,它通过将数据分成较小的部分,...

    各种排序算法的c++泛型实现

    - **归并排序(Merge Sort)**:归并排序也是一种分治算法,它将数组拆分为两个子数组,分别进行排序,然后合并这两个已排序的子数组以得到最终结果。这种方法保证了稳定的排序效果。 - **桶排序(Bucket Sort)*...

    算法设计采用废分治策略进行归并排序

    **归并排序(Merge Sort)**是一种经典的**分治策略(Divide and Conquer Strategy)**在算法领域的应用。分治策略将复杂问题分解为更小的子问题,然后逐个解决,最后将子问题的解合并得到原问题的解。归并排序正是...

    快速排序、堆排序、归并排序、希尔排序实现

    在Sort.Try这个项目中,开发者可能包含了这四种排序算法的C++实现代码,通过学习和分析这些代码,可以加深对排序算法的理解,并有助于实际开发中选择合适的排序算法。在阅读和理解源码时,注意观察每种排序算法如何...

    C++归并排序详解以及代码实现

    归并排序(Merge Sort)是一种高效的排序算法,它利用了分治法的思想,将大问题分解为小问题来解决。其基本步骤包括分解、求解和合并。 1. 分解:归并排序首先将待排序的数组不断地平均分为两半,这个过程一直持续...

    归并排序的C++的算法

    ### 归并排序的C++实现详解 #### 一、归并排序简介 归并排序是一种高效的排序算法,采用分治策略来对数组进行排序。它将数组分成两半,递归地对每一半进行排序,然后将两个有序数组合并成一个整体有序数组。归并...

    归并分类 计算机算法 c/c++语言 递归和非递归

    在这个上下文中,我们将深入探讨归并排序的计算机算法,以及如何在C/C++编程语言中实现其递归和非递归版本。 **归并排序的基本思想** 归并排序的核心是将一个大数组分为两个或更多个小数组,分别对这些小数组进行...

    C++实现6种排序算法对四种类型数据排序

    在CSort文件中,你可以找到这六种排序算法的C++实现代码,通过阅读和理解这些代码,你可以更好地掌握各种排序算法的原理和使用方法。同时,通过对不同数据集的测试,可以对比分析各种算法的性能差异,从而加深对排序...

    简单易懂实现的归并排序

    归并排序是一种基于分治策略的高效排序算法,它的核心思想是将大问题分解为小问题来解决。在归并排序中,我们将一个大数组分为两个或更多个较小的子数组,对每个子数组进行排序,然后将这些有序的子数组合并成一个大...

    数据结构 排序算法之归并排序

    归并排序(Merge Sort)是一种非常有效的排序算法,尤其在处理大量数据时表现出良好的稳定性和效率。 归并排序的基本思想源于分治法,即将大问题分解为小问题来解决。在归并排序中,我们首先将待排序的序列拆分为两...

    C++归并排序测试程序

    归并排序(Merge Sort)是一种基于分治策略的高效排序算法,它将大问题分解为小问题来解决。在C++中实现归并排序,我们可以按照以下步骤进行: 1. **分治思想**:归并排序的核心是将一个大数组分为两个或多个小数组...

    6种排序算法选择排序,冒泡排序,插入排序基数排序,快速排序,归并排序

    `Sort.cpp`和`Sort.h`文件很可能是实现了这些排序算法的C++源代码文件,其中`Sort.cpp`包含函数的实现,而`Sort.h`可能包含了函数声明和必要的类定义。学习和理解这些文件可以帮助你更深入地掌握C++中的排序算法及其...

    C/C++数据结构_随机10000个数:排序~8大排序代码集.rar

    本资源“C/C++数据结构_随机10000个数:排序~8大排序代码集.rar”提供了C/C++实现的八种经典排序算法,适合初学者深入理解和实践。这里我们将详细讨论这八大排序算法以及它们的工作原理。 1. **冒泡排序(Bubble ...

Global site tag (gtag.js) - Google Analytics