桶排序和快排函数
@
桶排序bucket sort
概述(哈希的感觉)
要求:数字是有一定范围的
基本思想:分配+收集
具体:
-----(分配) : 设置若干个箱子,将关键字为k的数据,放入第k个箱子,
-----(收集) :然后按序号草将非空的连接
代码
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int n; scanf("%d",&n); int i; int a; int hash[101]; memset(hash, 0, sizeof(hash)); for(i=1; i<=n; i++) { scanf("%d",&a); hash[a]++; } for(i=0; i<=100; i++) { if(hash[i]!=0) printf("%d %d\n",i,hash[i]); } return 0; }
快排函数模板代码
void q_sort (int a[], int l, int r) { if(l>=r) return; int i=l,j=r,key=a[l]; while(i<j) { while(i<j&&key<=a[j]) j--;//注意是小于等于 a[i]=a[j]; while(i<j&&key>=a[i]) i++; a[j]=a[i]; } a[i]=key; q_sort(a,l,i-1);//注意是j-1和i+1,不包括i,因为i的位置一定是对的 q_sort(a,i+1,r); }
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/15224617.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步