From 6e5f30728b7bbd8c5d4949fe322735cbe95e6b2e Mon Sep 17 00:00:00 2001 From: flykhan Date: Mon, 24 Jul 2023 15:32:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96=E7=89=88=E6=A1=B6=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter1/d1.c | 29 +++++++++++++++++++++++++++++ chapter1/d2.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 chapter1/d1.c create mode 100644 chapter1/d2.c diff --git a/chapter1/d1.c b/chapter1/d1.c new file mode 100644 index 0000000..4f00c8a --- /dev/null +++ b/chapter1/d1.c @@ -0,0 +1,29 @@ +// 简化桶排序桶排序 +// 啊哈算法 P4-5 +#include + +int main() +{ + int a[11], i, j, t; + for (i = 0; i <= 10; i++) + a[i] = 0; // 初始化为0 + + for (i = 1; i <= 5; i++) + { + scanf("%d", &t); // 把每一个数读入到变量 t 中 + a[t]++; // 进行计数 + } + + // 从小到大排序 + // for (i = 0; i <= 10; i++) // 依次判断 a[0]~a[10] + // 从大到小排序 + for (i = 10; i >= 0; i--) + for (j = 1; j <= a[i]; j++) // 出现了几次就打印几次 + printf("%d ", i); + + /* 用于Windows + getchar();getchar(); // 用来暂停程序,以便查看程序输出的内容 + // 也可以用 system("pause"); 等来替代 + */ + return 0; +} \ No newline at end of file diff --git a/chapter1/d2.c b/chapter1/d2.c new file mode 100644 index 0000000..e190864 --- /dev/null +++ b/chapter1/d2.c @@ -0,0 +1,30 @@ +// 简化桶排序 +// 啊哈算法 P6 +#include + +int main() +{ + int book[1001], i, j, t, n; + + for (i = 0; i <= 1000; i++) + book[i] = 0; + + printf("请输入要排序的数的个数: "); + scanf("%d", &n); // 输入一个数 n,表示接下来有 n 个数 + printf("请输入 %d 个数,使用空格隔开: \n", n); + for (i = 1; i <= n; i++) // 循环读入 n 个数,并进行桶排序 + { + scanf("%d", &t); // 把每一个数读入到变量 t 中 + book[t]++; // 进行计数,对编号为 t 的桶放一个小旗子 + } + + for (i = 1000; i >= 0; i--) // 依次判断编号 1000~0 的桶 + for (j = 1; j <= book[i]; j++) // 出现了几次就打印几次 + printf("%d ", i); // 打印编号 + + // 用来暂停程序,以便查看程序输出的内容 + // getchar(); + // getchar(); + + return 0; +} \ No newline at end of file