折半归并排序
来源:互联网 发布:android系统源码网盘 编辑:程序博客网 时间:2024/06/13 20:30
#include "stdafx.h"
#include<iostream>
using namespace std;
void merge(int array1[], int array2[], int i,int mid, int end)
{
int k,l,j;
for( k=i,l=i,j=mid+1;l<=mid&&j<=end;k++)
{
if(array1[l]<array1[j])
{
array2[k]=array1[l];
l++;
}
else
{
array2[k]=array1[j];
j++;
}
}
while(l<=mid)
array2[k++]=array1[l++];
while(j<=end)
array2[k++]=array1[j++];
for(int n=i;n<=end;n++)
array1[n]=array2[n];
}
void mergesort( int array1[],int array2[],int i,int n)
{
if(i==n)
return;
else
{
int mid=(i+n)/2;
mergesort(array1,array2,i,mid);
mergesort(array1,array2,mid+1,n);
merge(array1,array2,i,mid,n);
}
}
void main()
{
int array1[5]={1,5,2,7,4};
int array2[5];
mergesort(array1,array2,0,4);
for(int i=0;i<5;i++)
{
cout<<array1[i]<<" ";
}
cout<<endl;
}
#include<iostream>
using namespace std;
void merge(int array1[], int array2[], int i,int mid, int end)
{
int k,l,j;
for( k=i,l=i,j=mid+1;l<=mid&&j<=end;k++)
{
if(array1[l]<array1[j])
{
array2[k]=array1[l];
l++;
}
else
{
array2[k]=array1[j];
j++;
}
}
while(l<=mid)
array2[k++]=array1[l++];
while(j<=end)
array2[k++]=array1[j++];
for(int n=i;n<=end;n++)
array1[n]=array2[n];
}
void mergesort( int array1[],int array2[],int i,int n)
{
if(i==n)
return;
else
{
int mid=(i+n)/2;
mergesort(array1,array2,i,mid);
mergesort(array1,array2,mid+1,n);
merge(array1,array2,i,mid,n);
}
}
void main()
{
int array1[5]={1,5,2,7,4};
int array2[5];
mergesort(array1,array2,0,4);
for(int i=0;i<5;i++)
{
cout<<array1[i]<<" ";
}
cout<<endl;
}
- 折半归并排序
- [数据结构]折半搜索、归并排序( 分治思想)
- C/C++排序之二(直接插入排序、 折半插入排序、归并排序(递归))
- 算法<改进的冒泡排序、直接插入排序、折半插入排序、希尔排序、快速排序、归并排序>
- 折半排序
- 折半排序
- 折半排序
- 折半排序
- 折半排序
- 折半排序
- 折半排序
- 折半排序
- 折半排序
- 必会算法:冒泡排序、快排、归并排序、折半查找、大根堆(Java版)
- 排序大全【各种排序】:直接插入,折半插入,冒泡,快排,简单选择,堆排序,归并排序
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序
- java多种排序方式以及代码(冒泡,插入,选择,快速,归并,希尔,折半)
- 归并排序-归并排序
- 通过改变函数的返回值改变它所指向的存储单元
- MFC中CObject
- C语言中的联合体union
- 【理想流】国内的开源为啥还不太行?
- 汇编作业题2
- 折半归并排序
- 各加密模式的演示(ECB,CBC)
- 如何在嵌入式LINUX中增加自己的设备驱动程序
- SED单行脚本快速参考(Unix 流编辑器)
- 新闻系统的实现(面向对象)
- 11.22
- savepoint 与raise_application_error结合应用
- 带你走进C#修饰符
- adb shell dumpsys 命令 查看内存