史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   C語言數字排序問題 (http://forum.slime.com.tw/thread260508.html)

h4772995 2010-07-21 04:40 PM

C語言數字排序問題
 
#include <stdio.h>
#include <stdlib.h>

typedef struct node_t
{
int num;
struct node_t *next;
} NODE;

void listNode(NODE *node,int num)
{
NODE *ptr=node;
if (!node) return;
while (ptr->next) ptr=ptr->next;
if (ptr->next = (NODE *)calloc(sizeof(NODE),1))
ptr->next->num=num;
}

void deleteNode(NODE *node)
{
if (node)
{
deleteNode(node->next);
free(node);
}
}

int Sort(NODE *node)
{
NODE *tmp;
if (node->next && node->next->next)
{
if (node->next->num > node->next->next->num)
{
tmp = node->next;
node->next = node->next->next;
tmp->next = node->next->next;
node->next->next = tmp;
return 1;
}
else return Sort(node->next);
}
else return 0;
}

int main()
{
int num;
NODE root ={0,}, *ptr;
do
{ printf("input number:");
scanf("%d",&num);
if (num)
{ listNode(&root,num);
while (Sort(&root));
for (ptr=root.next; ptr; ptr=ptr->next)
printf("->%d",ptr->num);
printf("\n");
}
} while (num);
deleteNode(root.next);
}

我該如何改成更有效率的排序?
排序程式的部份 我該怎麼改...:on_72:


所有時間均為台北時間。現在的時間是 05:42 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1