算法——冒泡排序
Posted Java学习基地Java毕设定制
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法——冒泡排序相关的知识,希望对你有一定的参考价值。
算法步骤:
1.比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。
2.这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1 个位置。
3.N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成
动画演示:
代码部分:
public class 冒泡排序 {
public void bubbleSort1(int [] a){
//数组的长度
int N = a.length - 1;
//需要N交换,才能得到有序数组
while (N != 0){
//对相邻的两个元素进行交换
for (int i = 0; i < N; i++) {
if (a[i] > a[i+1]){
//交换相邻两个元素
int tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}
}
//去掉最后的原元素不比较
N--;
}
}
public static void main(String[] args) {
冒泡排序 mp = new 冒泡排序();
int [] a = {1,4,7,3,5,9,6,10,50,49,38} ;
mp.bubbleSort1(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
System.out.print("--->");
}
}
}
以上是关于算法——冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章
算法漫游指北(第七篇):冒泡排序冒泡排序算法描述动图演示代码实现过程分析时间复杂度和选择排序算法描述动图演示代码实现过程分析时间复杂度