八大排序之冒泡排序
Posted 随性如风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八大排序之冒泡排序相关的知识,希望对你有一定的参考价值。
一、基本思想
冒泡排序是一种基于数值交换的排序,从第一个元素开始,与后面紧接着的一个元素比较,如果当前这个数更大,则交换两者的数值,那么值更大的元素就像泡泡一样往后走。第n趟排序即可使第n大元素从前往后走。进行n-1次这样的"冒泡操作"后,整个序列就有序了。
二、实现代码
测试工具类 点击这里
public class BubbleSort implements ISort{ public void sort(int[] a) { for(int i = 0; i <= a.length - 3; i++) { boolean isInOrder = true; for(int j = 0; j <= a.length-2-i; j++) { if(a[j] > a[j+1]) { //比较大的数往后面走 int t = a[j]; a[j] = a[j+1]; a[j+1] = t; isInOrder = false; } } if(isInOrder) { //如果某一次循环冒泡没有发生交换,则表明数组已经有序了 break; } } } public static void main(String[] args) { int[] array = RandomArrayGenerator.getRandomArray(100 , 30); SortTestHelper.test(new BubbleSort() , array); }
三、测试结果
四、总结分析
时间复杂度:O(n2)
空间复杂度:O(1)
稳定性:稳定
冒泡排序实现简单,直观易懂,且是稳定的排序算法,但时间复杂度不够理想。
以上是关于八大排序之冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章