帮忙做一道C语言综合题

ztlacc2008 2011-10-31 10:06:40
编写程序,实现数据的排序。要求用如下函数实现。
1)main()函数,在main()函数中调用read_data( ) 函数,然后任意选择一种排序方法,实现输入数据的升序或降序排列,最后调用 write_data( ) 函数输出排序结果。
2)read_data( ) 函数, 该函数的功能是输入一组数据存入一个一维数组。
3)write_data( ) 函数,将排好序的数据输出在屏幕上。
4)Shell( ) 函数,希尔排序法排序。
5)Quick()函数,二分排序法排序。

请人帮忙做一下。 不甚感激。
...全文
222 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q446512799 2011-11-01
  • 打赏
  • 举报
回复
这个不难,百度下有代码哦
AndyZhang 2011-11-01
  • 打赏
  • 举报
回复
只记得有这个东西,用的时候百度知道
tomljr 2011-11-01
  • 打赏
  • 举报
回复
希尔排序早都忘到九霄云外了!
panning520 2011-11-01
  • 打赏
  • 举报
回复
LZ还是自己把代码写好,有问题大家帮你找找嘛,找人做作业好多人都鄙视.....
尘缘udbwcso 2011-11-01
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//快速排序
void quickSort(int array[], int low, int high)
{
int i = low, j = high, tmp = 0;
int mid = array[(low + high) / 2];

do{
while(array[i] < mid)
i++;
while(array[j] > mid)
j--;
if(i <= j)
{
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
i++;
j--;
}
}while(i <= j);
if(low < j)
quickSort(array, low, j);
if(i < high)
quickSort(array, i, high);
}


void shellInsert(int array[], int length, int interval)
{
int i, j, key;
for(i = interval; i < length; i = i + interval)
if(array[i] < array[i - interval])
{
key = array[i];
for(j = i - interval; key < array[j]; j = j - interval)
array[j + interval] = array[j];
array[j + interval] = key;
}
}
//希亇排序
void shellSort(int array[], int length)
{
int i;
int interval[] = {5, 3, 1};

printf("ShellSort\n");

for(i = 0; i < 3; i++)
shellInsert(array, length, interval[i]);
}

void output(int array[], int length)//输出
{
int i;
for(i = 0; i < length; i++)
{
printf("%d ", array[i]);
}
printf("\n");
}


void changeArray(int array[], int length)
{
int i;
time_t t;
srand((unsigned) time(&t));
for(i = 0; i < length; i++)
array[i] = rand() / 100;
}

int main()
{
int array[10] = {0, 9, 8, 12, 3, 8, 3, 89, 23, 82};
int length = 10;

output(array, length);
quickSort(array, 0, length - 1);
output(array, length);
printf("\n");

changeArray(array, length);
output(array, length);
shellSort(array, length);
output(array, length);
printf("\n");

return 0;
}


以前写的供参考
liang_cheng_jie 2011-11-01
  • 打赏
  • 举报
回复
那么巧,这条作业题我也发过,结果被一堆人鄙视,悲剧啊
七擒关羽 2011-10-31
  • 打赏
  • 举报
回复
LZ的百度都可以找到,这里只会提供思路和建议
诶呦 2011-10-31
  • 打赏
  • 举报
回复
这里不帮忙写程序啊,努力点
Nina_chan 2011-10-31
  • 打赏
  • 举报
回复
不要带作业来,实在不会做抄也可以嘛,带过来不是招鄙视吗?
junaing 2011-10-31
  • 打赏
  • 举报
回复
lz 呵呵 加油啊!
夏夏夏奇 2011-10-31
  • 打赏
  • 举报
回复
Lz要自己动手写程序,有问题的话,大家会帮忙解决的,但是整个程序都让别人写,不仅自己学不到知识,而且大家给你写得可能性也不大。
hulongchuan 2011-10-31
  • 打赏
  • 举报
回复
lz自己要多动手,学习过程就是动手过程!别人给你现成的代码,你什么也学不到。如果自己代码遇到了bug难以解决,这样大家帮你一起看下,找到问题所在,你才能获得知识!
拉卡尼休 2011-10-31
  • 打赏
  • 举报
回复
带作业来会被鄙视的,哈哈

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧