经典排序——桶排序——C语言版
来源:互联网 发布:电视软件下载 编辑:程序博客网 时间:2024/06/06 23:54
/*桶排序——最多两位数*//*申请和分配每个桶的空间,将数组插入桶中,本程序为每个数除以10,即每个桶内进行个位排序,之后按顺序从每个桶内把数据取出排列到数组内*/#include <stdio.h>#include <stdlib.h>#define bucket_size 15//有多少个桶 15可以最大排到150typedef struct node{ int key; struct node *next;}keynode;int bucket_sort(int s[],int size){ /*申请空间*/ keynode *bucket_table = (keynode*) malloc(sizeof(keynode)*size); /*创建桶*/ int i; for(i=0;i<bucket_size;i++) { /*每个桶的元素的空间分配*/ bucket_table[i]=*(keynode*)malloc(sizeof(keynode)); bucket_table[i].key=0; bucket_table[i].next= NULL; } /*开始向桶插入元素*/ for(i=0;i<size;i++) { /*给每个数组元素申请空间*/ keynode *node =(keynode*)malloc(sizeof(keynode)); /*给每个节点赋值*/ node->key=s[i]; node->next=NULL; int bucket_number= s[i]/10; keynode *p=&bucket_table[bucket_number]; /*桶里没有任何元素*/ if(p->next== NULL && p->key==0)/*个位数*/ { bucket_table[bucket_number].next =node; (bucket_table[bucket_number].key)++; } /*桶里已有元素,要通过比较插入*/ else { while(p->next!=NULL && p->next->key <= node->key) { p=p->next; (bucket_table[bucket_number].key)++; } node->next=p->next; p->next=node; } } int num=0; keynode *k=&bucket_table[num]; for(i=0;i<size;i++) { if(k->next==NULL) { num++; i--; *k=bucket_table[num]; } else { s[i]=k->next->key; k=k->next; } } return *s;}int main(){ int s[5]; int n,i; n=5; for(i=0;i<n;i++) { scanf("%d",&s[i]); } bucket_sort(s,n); for(i=0;i<n;i++) { printf("%d ",s[i]); }}
0 0
- 经典排序——桶排序——C语言版
- 经典排序——插入排序——C语言版
- 经典排序——冒泡排序——C语言版
- 经典排序——堆排序——C语言版
- 经典排序——希尔排序——C语言版
- 经典排序——归并排序——C语言版
- 经典排序——快速排序——C语言版
- 经典排序——基数排序LSD——C语言版
- 数据结构(c语言版)学习笔记——排序算法
- 数据结构(c语言版)学习笔记——排序算法
- 深入浅出数据结构C语言版(16)——插入排序
- 链表排序——选择排序法(纯C语言版)
- 链表排序——插入排序(纯C语言版)
- 单向链表排序——冒泡排序(C语言版)
- 链表排序——插入排序(纯C语言版)
- 链表排序——插入排序(纯C语言版)
- 链表排序——选择排序法(纯C语言版)
- 链表排序——插入排序(纯C语言版)
- 一个类如何实现自杀?
- 【Unity3D】Mesh
- ScrollView和GestureDetector触屏事件冲突
- linux下brctl配置网桥
- LeetCode刷题——Swap Nodes in Pairs(Medium)
- 经典排序——桶排序——C语言版
- Retrofit2使用总结
- Tensorflow lesson 4---输入参数placeholder
- javascript-qrcode.js教程
- 理解SPRINGMVC的原理
- str指令
- Cardboard如何使用凝视触发移动
- Oracle dmp文件损坏恢复案例
- IP数据包的分析实例