排序算法:桶排序

作者: Chunkit_Lau | 来源:发表于2019-01-06 22:43 被阅读0次

桶排序的定义

先引用维基百科的一段话作为开头:

Bucket sort, or bin sort, is a sorting algorithm that works by distributing the elements of an array into a number of buckets. Each bucket is then sorted individually, either using a different sorting algorithm, or by recursively applying the bucket sorting algorithm.
from Wikipedia Bucket sort

我的理解

顾名思义,我们先摆好几个桶,这几个桶呢是按顺序放好的,例如:0, 1, 2, 3 .... , 10;现在,我们有一组数: 3, 5, 2, 1, 6, 4, 2, 8, 9,我们怎么给这组数去排序呢?首先寻找一个标杆,就是桶 (因为桶的顺序的正确的)。
然后我们把 3 扔进桶 3, 5 扔进桶 5,一次类推,然后在将这些桶的数一一打印出来就可以了。从小到大,从大到小任君选择。

Code

这里写一下 C code,仅作参考:

#include <stdio.h>

int main(){
    int a[11], i, j , t; // build 11 buckets
    for (i = 0; i < 10; i++)
        a[i] =0; // the initail values is zero
    
    for (i = 1; i <= 5; i++){ 
// the example has 5 numbers so i is less than 5 
        scanf("%d", &t);
        a[t]++;
    }
    
    for (i = 0; i <= 10; i++)
        for(j = 1; j <= a[i]; j++)
            printf("%d \n", i);
    getchar();
    
    return 0;
}

Reference:

https://en.wikipedia.org/wiki/Bucket_sort

《啊哈算法》 ISBN: 9787115354594

相关文章

  • 线性排序

    桶排序、计数排序、基数排序 一、线性排序算法介绍 1.线性排序算法包括桶排序、计数排序、基数排序。2.线性排序算法...

  • 浅谈排序算法

    排序算法有很多种,今天先谈谈一些简单的排序算法。包括桶排序、冒泡排序和快速排序算法。后期总结各种排序算法。 桶排序...

  • 排序算法(十一)桶排序

    排序算法(十一)桶排序   桶排序(Bucket sort)是计数排序改进版,同样属于非比较排序,该算法的基本思想...

  • 排序算法三(桶,计数,基数)

    桶排序,计数排序,基数排序算法的时间复杂度都是线性的,所以把这类排序算法叫作线性排序。 桶排序 概念:将要排序的数...

  • (转)排序算法

    排序算法点这里 数据结构与算法——计数排序、桶排序、基数排序

  • noip普及组3:排序算法

    排序算法 ①冒泡排序:O() ②插入排序:O() ③选择排序:O() ④桶排序 ⑤sort排序

  • 排序算法概述

    十大排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序、希尔排序、计数排序,基数排序,桶排序 算法...

  • 十大排序算法

    算法说明 十大排序算法分别是:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序...

  • 桶排序与哈希桶排序

    一.桶排序 算法原理 桶排序 (箱排序)的原理是将待排序序列分到有限数量的桶里面,然后对每个桶再分别排序(可以使用...

  • 线性排序

    一、线性排序算法介绍 线性排序算法包括桶排序、计数排序、基数排序。 线性排序算法的时间复杂度为O(n)。 此3种排...

网友评论

    本文标题:排序算法:桶排序

    本文链接:https://www.haomeiwen.com/subject/jqierqtx.html