HELLO WORLD--一起加油(🍺)!|

kingwzun

园龄:3年6个月粉丝:111关注:0

桶排序和快排函数

@

桶排序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 中国大陆许可协议进行许可。

posted @   kingwzun  阅读(56)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起