Zer0e's Blog

经典算法之冒泡排序

字数统计: 236阅读时长: 1 min
2018/04/11 Share

冒泡排序法应该是大家最初接触到的排序算法,冒泡排序法简单而且非常容易理解,下面我就以升序为例讲解。
设数组的长度为N,比较相邻的两个元素,把其中大的那个数交换放在后面。对第0个到第N-1个数进行遍历之后,最大的数已经“沉”到最后一个,接下来对第0个到第N-2个数进行遍历,直到排序完成。


很容易就写出源码。

源码部分

1
2
3
4
5
6
7
8
void BubbleSort(int a[], int n)  
{
int i, j;
for (i = 0; i < n; i++)
for (j = 1; j < n - i; j++)
if (a[j - 1] > a[j])
swap(a[j - 1], a[j]);
}

显然,冒泡排序法的时间复杂度为n*n,效率低下,对于大数组不建议使用冒泡排序法。当然网上也有许多对冒泡排序法的优化,这里我便不详讲。

原文作者:Zer0e

原文链接:https://re0.top/2018/04/11/bubblesort/

发表日期:April 11th 2018, 8:22:00 pm

更新日期:June 3rd 2018, 3:06:07 pm

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG
  1. 1. 源码部分