![]() |
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.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *