12下一页
返回列表 发新帖

十大经典排序算法——基数排序

[复制链接]

9

主题

81

回帖

341

积分

初中生

Rank: 3Rank: 3

金币
164
好评
0
信誉
100
发表于 2023-9-20 09:29:50 | 显示全部楼层 | 阅读模式  来自 福建
图解


代码

#include<stdio.h>
#define MAX 20
//#define SHOWPASS
#define BASE 10

void print(int *a, int n) {
  int i;
  for (i = 0; i < n; i++) {
    printf("%d\t", a);
  }
}

void radixsort(int *a, int n) {
  int i, b[MAX], m = a[0], exp = 1;

  for (i = 1; i < n; i++) {
    if (a > m) {
      m = a;
    }
  }

  while (m / exp > 0) {
    int bucket[BASE] = { 0 };

    for (i = 0; i < n; i++) {
      bucket[(a / exp) % BASE]++;
    }

    for (i = 1; i < BASE; i++) {
      bucket += bucket[i - 1];
    }

    for (i = n - 1; i >= 0; i--) {
      b[--bucket[(a / exp) % BASE]] = a;
    }

    for (i = 0; i < n; i++) {
      a = b;
    }

    exp *= BASE;

#ifdef SHOWPASS
    printf("\nPASS   : ");
    print(a, n);
#endif
  }
}

int main() {
  int arr[MAX];
  int i, n;

  printf("Enter total elements (n <= %d) : ", MAX);
  scanf("%d", &n);
  n = n < MAX ? n : MAX;

  printf("Enter %d Elements : ", n);
  for (i = 0; i < n; i++) {
    scanf("%d", &arr);
  }

  printf("\nARRAY  : ");
  print(&arr[0], n);

  radixsort(&arr[0], n);

  printf("\nSORTED : ");
  print(&arr[0], n);
  printf("\n");

  return 0;
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

372

主题

1万

回帖

3万

积分

博士后

       

Rank: 8Rank: 8

金币
3329
好评
175
信誉
118
发表于 2023-9-20 09:33:06 来自手机  | 显示全部楼层  来自 广东
   怎使用

  
回复

使用道具 举报

28

主题

6648

回帖

1万

积分

博士生

百川

Rank: 7Rank: 7Rank: 7

金币
8818
好评
1
信誉
150

MT论坛新人考神MT论坛帅哥

发表于 2023-9-20 09:37:03 来自手机  | 显示全部楼层  来自 四川
感谢学习交流
回复

使用道具 举报

0

主题

1787

回帖

3650

积分

大学生

Rank: 5Rank: 5

金币
16
好评
0
信誉
100
发表于 2023-9-20 10:09:20 来自手机  | 显示全部楼层  来自 广西
这个排序有点难了(看代码量就知道
回复

使用道具 举报

4

主题

4129

回帖

8264

积分

硕士生

Rank: 6Rank: 6

金币
1004
好评
3
信誉
90

MT论坛新人MT论坛帅哥考神MT论坛最佳新人

发表于 2023-9-20 10:59:13 | 显示全部楼层  来自 四川
学习了
回复

使用道具 举报

2

主题

5982

回帖

1万

积分

博士生

尊贵的VIP用户

Rank: 7Rank: 7Rank: 7

金币
2174
好评
1
信誉
100

考神

发表于 2023-9-20 11:04:33 | 显示全部楼层  来自 安徽–合肥–巢湖
学习学习
回复

使用道具 举报

0

主题

189

回帖

625

积分

初中生

Rank: 3Rank: 3

金币
549
好评
0
信誉
100
发表于 2023-9-20 14:03:42 来自手机  | 显示全部楼层  来自 山东
学习了
回复

使用道具 举报

22

主题

1万

回帖

2万

积分

博士后

坤锁

Rank: 8Rank: 8

金币
11151
好评
1
信誉
100
发表于 2023-9-20 16:13:57 来自手机  | 显示全部楼层  来自 辽宁
这是什么代码?
回复

使用道具 举报

11

主题

399

回帖

1037

积分

高中生

小萌新

Rank: 4

金币
62
好评
1
信誉
102

考神MT论坛新人MT论坛帅哥

发表于 2023-9-23 13:23:49 来自手机  | 显示全部楼层  来自 陕西
大佬牛博弈
回复

使用道具 举报

45

主题

2648

回帖

7864

积分

硕士生

Rank: 6Rank: 6

金币
1521
好评
1
信誉
101
发表于 2023-10-13 18:53:04 | 显示全部楼层  来自 北京
大佬简直了!
回复

使用道具 举报

21

主题

4069

回帖

7762

积分

硕士生

Rank: 6Rank: 6

金币
662
好评
2
信誉
84
发表于 2023-10-13 18:54:36 来自手机  | 显示全部楼层  来自 云南
没看明白这是什么意思,看着挺高端的
回复

使用道具 举报

0

主题

997

回帖

2790

积分

大学生

Rank: 5Rank: 5

金币
549
好评
0
信誉
100
发表于 2023-10-14 09:33:34 | 显示全部楼层  来自 北京
谢谢你的分享!
回复

使用道具 举报

0

主题

986

回帖

3015

积分

大学生

Rank: 5Rank: 5

金币
2136
好评
0
信誉
100
发表于 2023-10-14 12:06:55 | 显示全部楼层  来自 北京
厉害厉害,我也要学习一下排序算法!
回复

使用道具 举报

0

主题

986

回帖

2908

积分

大学生

Rank: 5Rank: 5

金币
1686
好评
0
信誉
100
发表于 2023-10-15 12:42:07 | 显示全部楼层  来自 北京
感谢分享,好好学习一下
回复

使用道具 举报

0

主题

1176

回帖

3321

积分

大学生

Rank: 5Rank: 5

金币
1957
好评
0
信誉
100
发表于 2023-10-16 12:38:42 | 显示全部楼层  来自 北京
这个排序算法真的很厉害
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表