24小时热门版块排行榜    

查看: 1221  |  回复: 5

xiaolei@

金虫 (小有名气)

[求助] 求大侠帮忙看个程序

#include
#include

typedef struct node
{   char name[8];
int num;
int score;
int tax;
}Node;     //  候选人结构


void shellSort( Node **, int );

int main(void)
{
int n = 0;
Node * pArray[9];//指针数组,长度9
int count = 0;
//int status = 1;
int vote = -1;

printf("Input the number of the candidates(1-9):\n";
scanf("%d", &n);
while(getchar()!='\n')
{
  ;
}

while (n>9 || n<1)
{
  if (n>9)
  {
   printf("No, there cannot be so many candidates. Retry.\n";
  }
  else
  {
   printf("No candidates? It cannot be! Retry!\n";
  }
  scanf("%d", &n);
  while(getchar()!='\n')
  {
   ;
  }
}

for (count=0; count {
  pArray[count] = (Node *)malloc(sizeof(Node));
  pArray[count]->num = count+1;
  pArray[count]->tax = 0;
  pArray[count]->score = 0;
  printf("Input No.%d candidate's name:\n", count+1);
  gets(pArray[count]->name);
}

while (vote)
{
  printf("Now, let us vote:\n*************\n";
  for (count=0; count   {
   printf("%d. %s\n", count+1, pArray[count]->name);
  }
  printf("0.quit\n*************\n";
  scanf("%d", &vote);
  while(getchar()!='\n')
  {
   ;
  }
  
  while (vote<0 || vote>n)
  {
   printf("No joke, thank you. Revote.\n";
   scanf("%d", &vote);
   while(getchar()!='\n')
   {
    ;
   }
   
  }
  if (vote>0&&vote<=n)
  {
   pArray[vote-1]->score++;
  }
}

printf("Finish voting. Let's find the winner......\n\n";

shellSort( pArray, n );

for (count=0; count {
                  pArray[count]->tax=count+1;
  printf("%d. %s %d votes.\n", count+1, pArray[count]->name, pArray[count]->score);
}

for(count=0; count {
  free(pArray[count]);
  pArray[count] = NULL;
}

return 0;
}

void shellSort( Node *p[], int len )
{
const int Length = len;
int i = 0;
int j = 0;
int gap = 0;
Node *temp = NULL;

gap = Length/2;

while (gap>0)
{
  for (i=gap; i   {
   j = i - gap;
   temp = *(p+i);
   
   while ( (j>=0) && (p[j]->score < temp->score) )
   {
    *(p+j+gap) = *(p+j);
    j = j - gap;
   }
   
   *(p+j+gap) = temp;
  }
  gap /= 2;
}
}
谁能帮忙看下这个程序的每个函数的时间复杂度空间复杂度是多少?还有最后个希尔排序算法每步的意思。谢谢啦
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

英雄就是做任何事都全力以赴!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lt292

金虫 (正式写手)

Holy Shit

我表示,我已经看不懂指针是什么意思了
好久没看到c程序了
记忆中的颜色,慢慢褪去,变成一缕缕的黑丝,最终消失在茫茫的空白里,一去不返```
2楼2011-12-30 16:19:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lt292

金虫 (正式写手)

Holy Shit

xzhdty: 欢迎常来 2011-12-30 20:09:50
lz程序建议给个缩进啊,看起来层次有点乱
编程风格很重要
记忆中的颜色,慢慢褪去,变成一缕缕的黑丝,最终消失在茫茫的空白里,一去不返```
3楼2011-12-30 16:20:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaolei@

金虫 (小有名气)

引用回帖:
: Originally posted by lt292 at 2011-12-30 16:20:54:
lz程序建议给个缩进啊,看起来层次有点乱
编程风格很重要

额....还是初学...不太会
英雄就是做任何事都全力以赴!!!
4楼2011-12-30 17:12:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jxt1234

新虫 (初入文坛)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
余泽成(金币+2): 谢谢参与应助,新年快乐! 2011-12-31 18:27:09
xiaolei@(金币+10): ★★★很有帮助 谢谢啦 课程设计要求 所以才这样的。 2011-12-31 19:42:43
这个程序就是输入侯选人票数并做个希尔排序么。。
关于排序算法建议回去看数据结构。。。
希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)
其实按这个程序流程不如构造大顶堆效率。。
5楼2011-12-31 15:58:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ruby0531

新虫 (小有名气)


jjdg(金币+1): 感谢发表意见 2012-01-05 03:10:23
希尔是nlgn吧  另  lz的{}记得不同层之间缩进啊
6楼2012-01-04 16:27:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xiaolei@ 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0856化工专硕求调剂 +6 董boxing 2026-03-01 6/300 2026-03-01 12:45 by houyaoxu
[考研] 302材料工程求调剂 +4 Doleres 2026-03-01 5/250 2026-03-01 11:52 by liqiongjy
[考研] 材料学调剂 +7 提神豆沙包 2026-02-28 9/450 2026-03-01 11:50 by 王伟要上岸啊
[考研] 求调剂 +5 repeatt?t 2026-02-28 5/250 2026-03-01 11:43 by 王伟要上岸啊
[考研] 311求调剂 +9 南迦720 2026-02-28 10/500 2026-03-01 10:55 by sunny81
[考研] 291分工科求调剂 +7 science饿饿 2026-03-01 8/400 2026-03-01 10:43 by sunny81
[考博] 博士自荐 +4 kkluvs 2026-02-28 4/200 2026-03-01 10:19 by 馥安馥安
[论文投稿] 求助coordination chemistry reviews 的写作模板 10+3 ljplijiapeng 2026-02-27 4/200 2026-03-01 09:07 by babero
[论文投稿] Optics letters投稿被拒求助 30+3 luckyry 2026-02-26 4/200 2026-03-01 09:06 by babero
[考研] 284求调剂 +5 天下熯 2026-02-28 5/250 2026-03-01 08:49 by ms629
[考研] 272求调剂 +4 田智友 2026-02-28 4/200 2026-03-01 06:43 by 刘兵
[基金申请] 面上模板改不了页边距吧? +5 ieewxg 2026-02-25 6/300 2026-03-01 00:10 by addressing
[考研] 307求调剂 +4 73372112 2026-02-28 6/300 2026-03-01 00:04 by ll247
[考研] 304求调剂 +3 52hz~~ 2026-02-28 5/250 2026-03-01 00:00 by 52hz~~
[考研] 化工专硕348,一志愿985求调剂 +4 弗格个 2026-02-28 6/300 2026-02-28 22:00 by wang_dand
[考研] 295求调剂 +5 19171856320 2026-02-28 5/250 2026-02-28 21:39 by gaoxiaoniuma
[考研] 298求调剂 +8 人间唯你是清欢 2026-02-28 11/550 2026-02-28 20:26 by L135790
[考研] 276求调剂 +3 路lyh123 2026-02-28 4/200 2026-02-28 19:45 by 路lyh123
[考研] 0856材料求调剂 +10 hyf hyf hyf 2026-02-28 11/550 2026-02-28 18:50 by 无际的草原
[考研] 265分求调剂不调专业和学校有行学上就 +4 礼堂丁真258 2026-02-28 6/300 2026-02-28 16:18 by 求调剂zz
信息提示
请填处理意见