大家帮我看看这个合并排序有什么问题?
大家帮我看看这个合并排序有什么问题?谢谢啦!~
#include <iostream>
using namespace std;
void merge(int array[], int p, int q, int r);
void mergesort(int array[], int start, int end);
void show_array(int array[]);
int main()
{
int array[10] = {0};
cout << "please type into many numbers: " << endl;
for(int i = 0; i < 10; i++)
{
cin >> array[i];
}
int start = 0;
int end = 9;
mergesort(array, start, end);
show_array(array);
return 0;
}
void mergesort(int array[], int start, int end)
{
if(start < end)
{
int mid;
mid = (start + end) / 2;
mergesort(array, start, mid);
mergesort(array, mid + 1, end);
merge(array, start, mid, end);
}
}
void merge(int array[], int p, int q, int r)
{
int temp1[5];
int temp2[5];
for(int i = 0; i < 5; i++)
{
temp1[1] = array[i];
}
for(int i = 5 ; i < 10; i++)
{
int j = 0;
temp2[j] = array[i];
j++;
}
int i = 0;
int j = 0;
int k = 0;
while(p <= q && (q + 1) <= r)
{
if(temp1[i] <= temp2[j])
{
array[k++] = temp1[i++];
}
else
{
array[k++] = temp2[j++];
}
}
while(p <= q)
{
array[k++] = temp1[i++];
}
while ((q + 1) <= r)
{
array[k++] = temp2[j++];
}
}
void show_array(int array[])
{
for (int i = 0;i < 10; i++)
{
cout << array[i] << "\t";
}
}
...全文
相关推荐
ts排序合并神器
可以根据m3u8文件,将ts文件排序,合并。 使用方法:解压后将exe文件放置于包含ts,m3u8的文件夹,运行,得到bat文件,再双击运行bat文件,得到合并后的新文件。
合并排序问题
【问题描述】利用合并排序算法对一个具有n个整数元素的数组进行排序; 【输入形式】输入两行,第一行为一个整数n,第二行为n个数组元素,n个元素中间用空格隔开。 【输出形式】输出一行,排好序的数组(元素之间用一个空格隔开)。 【样例输入】 8 8 9 0 1 2 5 4 3 【样例输出】 0 1 2 3 4 5 8 9
两个数组合并排序
设计并实现两数组的合并,并按从小到大的顺序排列。
合并排序(C语言实现)
其基本模式如下: 分解:把一个问题分解成与原问题相似的子问题 解决:递归的解各个子问题 合并:合并子问题的结果得到了原问题的解。 现在就用递归算法,采用上面的分治思想来解合并排序。 合并排序(非降序) 分解:把合并排序分解成与两个子问题 伪代码: 代码如下:MERGE_SORT(A, begin, end) if begin < end then mid<- int((begin + end)/2) MERGE_SORT(A, begin, mid) MERGE_SORT(A, mid+1, end
排序问题(选择法排序, 冒泡法排序, 合并法排序),VB6.0源代码编写
排序问题(选择法排序, 冒泡法排序, 合并法排序),VB6.0源代码编写


