排序算法的数组实现 -- 桶排序(五)
来源:互联网 发布:免费二级解释域名 编辑:程序博客网 时间:2024/06/06 22:16
//桶排序,假设对范围为0-99之间的int型数值进行排序,分成10个相同区间的桶
//这里用到了链表的排序算法,可以从单链表的排序(一)找到相应算法
void Insert_sort_Swap_Node(EleLink *old_froMax_Node, EleLink *old_Max_Node,EleLink *froMax_Node, EleLink *Max_Node){EleLink *tmp = Max_Node->pnext;if(old_Max_Node->pnext == Max_Node){old_froMax_Node->pnext = Max_Node;Max_Node->pnext = old_Max_Node;old_Max_Node->pnext = tmp;}else{old_froMax_Node->pnext = Max_Node;Max_Node->pnext = old_Max_Node->pnext;froMax_Node->pnext = old_Max_Node;old_Max_Node->pnext = tmp;}}void Link_Insert_Sort(EleLink *pNode){if(!pNode || !pNode->pnext)return;EleLink *p = pNode->pnext;int ncount = 0;while (p){ncount++;p = p->pnext;}p = pNode;EleLink *fro_Node, *froMax_Node;EleLink *cur_Node, *Max_Node;for (int i = 0; i < ncount - 1; i++){froMax_Node = p;Max_Node = p->pnext;fro_Node = p->pnext;cur_Node = fro_Node->pnext;while(cur_Node){if(Max_Node->Value > cur_Node->Value){froMax_Node = fro_Node;Max_Node = cur_Node;}fro_Node = cur_Node;cur_Node = cur_Node->pnext;}if(Max_Node != p->pnext)Insert_sort_Swap_Node(p, p->pnext,froMax_Node, Max_Node);p = p->pnext;}}void Bucket_Sort(int *a, int size, EleLink** bucket, int ncnt){for(int i = 0; i < size; i++){int temp = a[i] / 10;EleLink *p_Ele = new EleLink;p_Ele->pnext = NULL;p_Ele->Value = a[i];EleLink *ptr = bucket[temp];EleLink *p_tmp = ptr->pnext;ptr->pnext = p_Ele;p_Ele->pnext = p_tmp;}int m = 0;for (int j = 0; j < ncnt; j++){Link_Insert_Sort(bucket[j]);EleLink *ptr = bucket[j]->pnext;while(ptr){a[m++] = ptr->Value;ptr = ptr->pnext;}}assert(m == size);}
- 排序算法的数组实现 -- 桶排序(五)
- 排序算法的数组实现 -- 插入排序(一)
- 排序算法的数组实现 -- 堆排序(二)
- 排序算法的数组实现 -- 合并排序(三)
- 排序算法的数组实现 -- 快速排序(四)
- Java实现数组的快速排序(快速排序算法)
- 五大排序算法的实现
- 五种排序算法的JAVA 实现
- java类实现数组的五种排序 冒泡排序、选择排序、插入排序、希尔排序、数组排序
- 排序算法五:桶排序
- 经典排序算法之实现(五)
- 排序算法(五):JAVA实现归并排序
- 五种排序算法实现
- 五种排序算法实现
- 数组归并排序算法的一种实现
- 采用部分快速排序算法实现数组的部分排序
- 五种经典排序算法的实现(冒泡、归并、快排、堆排序、希尔)
- 五种经典排序算法的实现(冒泡、归并、快排、堆排序、希尔)
- openfire_3_7_1+sparkweb_0_9_0的配置
- Android layout-dpi-横竖屏 相关知识
- 编写多线程的 Java 应用程序
- 2012.07.12
- 黑马程序员---sql server 2005 的查询语句
- 排序算法的数组实现 -- 桶排序(五)
- CCParallaxNode CCProgressTimer CCRibbon CCMotionStreak
- struts2获取请求的两种方式
- [应用发布]Meego平台——五子棋
- 降级论:智商高的IT人,你比沙县老板强吗
- spring-xfire简单例子
- 如果我是国王:关于解决 Java编程语言线程问题的建议
- Oracle:Environment variable ORACLE_SID not defined. Please define it.
- <VirtualHost> directive requires additional arguments