大神们帮我看看这个归并排序代码,谢了。

问题描述

大神们帮我看看这个归并排序代码,谢了。

#include
using namespace std;
void fenkai(int a[], int l, int r);
void guibing(int a[], int start, int mid, int end);
int main(){
int a[20];
for (int i = 0; i < 20; i++){
a[i] = rand() % 100;
cout << a[i] << " ";
}
cout << endl;
fenkai(a, 0,19);
for (int i = 0; i < 20; i++)
cout << a[i] << " ";
}
void guibing(int a[], int start, int mid, int end){
int i, j, k;
i = start, j = mid + 1, k = 0;
int *c=new int[end-start+1];
while (i <= mid&&j <= end){
if (a[i] < a[j])
c[k++] = a[i++];
else
c[k++] = a[j++];
}
while (i<=mid)
c[k++] = a[i++];
while (j<=end)
c[k++] = a[j++];
for (int i = start, k = 0; i<(end-start+1); i++, k++)
a[i] = c[k];
delete[] c;
}
void fenkai(int a[],int l,int r){
if (l < r){
int m = (l + r) / 2;
fenkai(a, l, m);
fenkai(a, m+1, r);
guibing(a, l, m, r);
}
}

解决方案

改了三处:
1.多传入了一个参数int c[]作为目标数组
2.guibing函数里k初始成start
3.guibing函数最后的for循环改成了for(i=start; i<=end; i++)a[i] = c[i];

 #include<iostream>
using namespace std;
void fenkai(int a[], int c[], int l, int r);
void guibing(int a[], int c[], int start, int mid, int end);
int main(){
    int a[20], c[20];
    for (int i = 0; i < 20; i++){
        a[i] = rand() % 100;
        cout << a[i] << " ";
    }
    cout << endl;
    fenkai(a, c, 0,19);
    for (int i = 0; i < 20; i++)
        cout << c[i] << " ";
}
void guibing(int a[], int c[], int start, int mid, int end){
    int i, j, k;
    i = start, j = mid + 1, k = start;
    //int *c=new int[end-start+1];
    while (i <= mid&&j <= end){
        if (a[i] < a[j])
            c[k++] = a[i++];
        else
            c[k++] = a[j++];
    }
    while (i<=mid)
            c[k++] = a[i++];
    while (j<=end)
            c[k++] = a[j++];
    //for (int i = start, k = 0; i<(end-start+1); i++, k++)
    for(i=start; i<=end; i++)
        a[i] = c[i];
    //delete[] c;
}
void fenkai(int a[],int c[], int l,int r){
    if (l < r){
        int m = (l + r) / 2;
        fenkai(a, c, l, m);
        fenkai(a, c, m+1, r);
        guibing(a, c, l, m, r);
    }
}

时间: 2024-09-12 16:43:11

大神们帮我看看这个归并排序代码,谢了。的相关文章

ndroid 脚标越界-脚标越界求助,调了好久,还请路过大神顺带帮解决。。。

问题描述 脚标越界求助,调了好久,还请路过大神顺带帮解决... 代码如下 package com.example.datebase; import java.util.ArrayList; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public

cocos2dx3.x-Cocos3.x 移植到Android平台 xml文件读取出错,搞了两天了,大神们帮帮忙。求

问题描述 Cocos3.x 移植到Android平台 xml文件读取出错,搞了两天了,大神们帮帮忙.求 Cocos3.x 移植到Android平台 xml文件读取出错,搞了两天了,大神们帮帮忙.网上的代码也看完了,不顶用.想要个人来交流. 解决方案 顶起来,大神们,小弟今天是要离不开公司了.拜托了

求救-大神们帮帮忙,小米手机实现拍照照片上传怎么弄的?为啥别的手机可以,他的不兼容呢?

问题描述 大神们帮帮忙,小米手机实现拍照照片上传怎么弄的?为啥别的手机可以,他的不兼容呢? 小米手机实现拍照照片上传怎么弄的?为啥别的手机可以,他的不兼容呢? 解决方案 因为小米手机的系统深度定制过的,建议root下 解决方案二: 1.小米也是安卓系统,通过QQ就可以将照片传入电脑.也可将电脑的照片传入手机. 2.你也可以通过USB,连接电脑与手机,直接拷贝. 解决方案三: 应该可以吧,我看到有那个功能,不行就问问客服

css 程序入门-求大神们帮帮忙,滚动条设置宽度

问题描述 求大神们帮帮忙,滚动条设置宽度 设置滚动条的宽度,最好滚动条没有,还有滚动条效果,没有设置宽 解决方案 如何在LWUIT设置滚动条的宽度如何在LWUIT设置滚动条的宽度select下拉框宽度设置问题(自适应宽度,水平滚动条) 解决方案二: http://www.php100.com/html/it/qianduan/2015/0114/8366.html

asp.net mvc 关于FormCollection collection采集不到数据问题.大神们帮帮忙谢谢,指点一下也可以

问题描述 asp.net mvc 关于FormCollection collection采集不到数据问题.大神们帮帮忙谢谢,指点一下也可以 新手求请教!就是FormCollection collection采集不到前台的数据,之前用的时候从没出现这种问题. 解决方案 你在控制器端试试不要用FormCollection collection来接收,先试试用 public ActionResult xxxxxx(string line)来接收试试看 解决方案二: 视图转型了吗?引用mvc的js文件了

pat1019数字黑洞,有一个测试点过不去,大神们帮我看下哪错了?谢谢

问题描述 pat1019数字黑洞,有一个测试点过不去,大神们帮我看下哪错了?谢谢 #include <stdio.h> #include <stdlib.h> int comp(const void *a,const void *b){ return *(int*)a-*(int*)b; } int main(){ int n,a[4]={0},i,x,y; scanf("%d",&n); do{ i=0; while(n!=0){ a[i]=n%10;

servlet- 出现下面错误怎么解决啊 ,求方法,请大神们帮我看看!

问题描述 出现下面错误怎么解决啊 ,求方法,请大神们帮我看看! if(agent.contains("MSIE")){ 这句报错, 错误提示The method contains(CharSequence) from the type String refers to the missing type CharSequence package cn.itcast.response; import java.io.FileInputStream; import java.io.IOExc

linux-初学Linux,只能ping本机,ping不通网关和外网。。怎么解决?、大神们帮帮忙。。。

问题描述 初学Linux,只能ping本机,ping不通网关和外网..怎么解决?.大神们帮帮忙... 解决方案 服务器分配给你的233.3地址?还是自己配置的.用dhcp动态分配呢. 解决方案二: 本身的网路没有配置好吧, 解决方案三: IP地址配置不对,将IP地址配置为192.168.1段的 解决方案四: IP地址和网关不是一个网段的,配置有误. IP地址.网关和掩码至少有一个弄错了. 解决方案五: 都不在一个网段,把IP配置成1网段

安卓调用的是百度地图的接口,对定位的位置进行周边搜索,刚刚学一点不会弄,大神们帮帮忙啊

问题描述 安卓调用的是百度地图的接口,对定位的位置进行周边搜索,刚刚学一点不会弄,大神们帮帮忙啊 安卓调用的是百度地图的接口,对定位的位置进行周边搜索,刚刚学一点不会弄,大神们帮帮忙啊 解决方案 你可以参考下百度地图API的DEMO啊,里边有POI相关的