| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 435 人关注过本帖
标题:[求助]归并排序程序 为什么没有完整显示数组呢??
只看楼主 加入收藏
foxtt123
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-3-26
收藏
 问题点数:0 回复次数:0 
[求助]归并排序程序 为什么没有完整显示数组呢??

为什么显示不出来8呢??

#include<stdio.h>
#define MAXNUM 100
#define TRUE 1
#define FALSE 0
typedef int KeyType;
typedef int DataType;

typedef struct {
KeyType key;
} RecordNode;

typedef struct {
int n;
RecordNode record[MAXNUM];
} SortObject;

void merge(RecordNode r[], RecordNode r1[], int low, int m, int high) {
int i = low, j = m + 1, k = low;
while ( i <= m && j <= high ) {
if (r[i].key <= r[j].key)
r1[k++] = r[i++];
else r1[k++] = r[j++];
}

while (i <= m) r1[k++] = r[i++];
while (j <= high) r1[k++] = r[j++];

}
void mergePass(RecordNode r[], RecordNode r1[], int n, int length) {
int i = 0, j;
while(i + 2*length - 1 < n) {
merge(r, r1, i, i+length-1, i + 2*length - 1);
i += 2*length;
}

if(i + length - 1 < n - 1)
merge(r, r1, i, i+length-1, n-1);
else
for(j = i; j < n; j++) r1[j] = r[j];
}

void mergeSort(SortObject * pvector) {
RecordNode record[MAXNUM];
int length = 1;

while (length < pvector->n) {
mergePass(pvector->record, record, pvector->n, length);
length *= 2;
mergePass(record, pvector->record, pvector->n, length);
length *= 2;
}
}

SortObject vector = {8, 49,38,65,97,76,13,27,49};

int main(){
int i;
mergeSort(&vector);
for(i = 0; i < 8; i++)
printf("%d ", vector.record[i]);
getchar();
return 0;
}

搜索更多相关主题的帖子: include record color 
2007-07-08 22:48
快速回复:[求助]归并排序程序 为什么没有完整显示数组呢??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024555 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved