vlambda博客
学习文章列表

C语言算法之桶排序冒泡排序


点击


上方蓝字





什么是桶排序?

如图所示:

请看桶排序源代码:

#include<stdio.h>void rank(int a[], int len); int main() {    int a[] = {25414154595344858,};   int len = sizeof(a) / sizeof(a[0]);  rank(a, len);   return 0;} void rank(int a[], int len) {    int num[100];  for (int i = 0; i < 100; ++i) {      num[i] = 0;   }    for (int j = 0; j < len; ++j) {       num[a[j]]++;   }    for (int k = 100; k >= 0; --k) {       if (num[k] != 0) {            for (int l = 0; l < num[k]; ++l) {                printf("%d ", k);            }        }    }}

运行上述源代码,会得到以下结果:

95 58 54 48 45 34 15 4 2 1


什么是冒泡排序? 

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单基础的排序算法。其基本思路是,对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。 


请看冒泡排序源代码:

#include<stdio.h>void rank(int a[], int len);int main() {    int a[] = {2, 54, 1, 4, 15, 45, 95, 34, 48, 58,}; int len = sizeof(a) / sizeof(a[0]);    rank(a, len);   return 0; } void rank(int a[], int len) {   for (int i = 0; i < len - 1; ++i) {        for (int j = 0; j < len - 1 - i; ++j) {            if (a[j] < a[j + 1]) {                int t = a[j];   a[j] = a[j + 1];                a[j + 1] = t;            }       }  } }

运行上述源代码,会得到以下结果

95 58 54 48 45 34 15 4 2 1

END


编辑:陈鑫




转载是一种动力 分享是一种美德