冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
代码:
public class MaoPao
{
public static void main(String[] args)
{
int[] num = {5, 7, 1, 9, 3};
System.out.println("排序前:");
for (int k = 0; k < num.length; k++)
{
System.out.print(num[k] + " ");
}
System.out.println();
boolean flag = true;
System.out.println("开始排序:");
for (int i = 0; i < num.length - 1 && flag; i++)
{
flag = false;
for (int j = 0; j < num.length - 1 - i; j++)
{
if (num[j] > num[j+1])
{
int a = num[j + 1];
num[j + 1] = num[j];
num[j] = a;
flag = true;
}
}
for (int k = 0; k < num.length; k++)
{
System.out.print(num[k] + " ");
}
System.out.println();
}
}
}
输出结果:
排序前:
5 7 1 9 3
开始排序:
5 1 7 3 9
1 5 3 7 9
1 3 5 7 9
1 3 5 7 9
算法复杂度为n2
因为顺序冒泡如果两个相同数字之间不会改变顺序 所以是稳定算法
原文:https://www.cnblogs.com/tiantanglw/p/12398499.html