簡體   English   中英

這是什么樣的排序算法?

[英]What kind of a sorting algorithm is this?

這是一個用於對名稱列表進行排序的ac程序示例...我是算法的新手,這就是為什么我需要知道它是什么類型的原因! 我也可以將其用於現實生活中的哪些例子?

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

 int main() {
 char *str[5], *temp;
 int i, j, n;

 printf("\nHow many names do you want to have?");
 scanf("%d", &n);

 for (i = 0; i < n; i++) {
 printf("\nEnter the name %d: ", i);
 flushall();
 gets(str[i]);
 }

 for (i = 0; i < n; i++) {
  for (j = 0; j < n - 1; j++) {
     if (strcmp(str[j], str[j + 1]) > 0) {
        strcpy(temp, str[j]);
        strcpy(str[j], str[j + 1]);
        strcpy(str[j + 1], temp);
     }
  }
}

flushall();

printf("\nSorted List : ");
for (i = 0; i < n; i++)
  puts(str[i]);

return (0);
}

我希望它能進行氣泡分類。 這樣,您可以按升序或降序排列數字。

首先程序無效。 它不會在要存儲字符串的位置分配內存。 結果,由於沒有足夠的空間在程序中存儲字符串,詢問用戶要擁有多少個名稱是非常冒險的步驟。

您可以對字符串和標准函數fgets使用二維可變長度字符數組,而不要使用gets輸入字符串。

至於排序算法,那就是氣泡排序的不好實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM