Java算法学习笔记之冒泡排序

—、最基础的排序——冒泡排序 

冒泡排序是许多人最早接触的排序算法,由于逻辑简单,所以大量的出现在计算机基础课本上,作为一种最基本的排序算法被大家所熟知。

设无序数组a[]长度为N,以由小到大排序为例。冒泡的原理是这样的: 

1.比较相邻的前两个数据,如果前面的数据a[0]大于后面的数据a[1] (为了稳定性,等于不交换),就将前面两个数据进行交换。在将计数器 i ++; 

2.当遍历完N个数据一遍后,最大的数据就会沉底在数组最后a[N-1]。 

3.然后N=N-1;再次进行遍历排序将第二大的数据沉到倒数第二位置上a[N-2]。再次重复,直到N=0;将所有数据排列完毕。

1 无序数组:25471683

2 遍历1次后:24516738

3 遍历2次后:24156378

4   ...

5 遍历7次后:12345678

可以轻易的得出,冒泡在 N– 到 0 为止,每遍近似遍历了N个数据。所以冒泡的时间复杂度是 -O(N^2)。

按照定义实现代码如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,326评论 0 2
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,287评论 0 52
  • 雨中独行 2009-6-2 18:19 看破人间烦恼事, 唱尽红尘快乐歌。
    夕阳在山阅读 251评论 3 1
  • 我正在写步进机,还要一直写下去…
    刘芳铭CC阅读 241评论 0 0
  • 这几天在读的是《万历十五年》,中间数次想到康熙。简单说说联想到的一些人事,当做这次读书计划收尾的分享吧~ 《万历十...
    乔不明白阅读 586评论 0 0

友情链接更多精彩内容