冒泡排序:
核心思想:
冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。
它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!
package com.bit.gzz;
public class BubbleSort {
//a待排序的数组,n是数组的长度
public static void bubbleSort2(int [] a,int n){
int i,j;
int flag;
for(i = n-1; i > 0;i--){
flag = 0; //初始化为0
for(j = 0;j < i;j++){
if(a[j]>a[j+1]){
int tmp = a[j];
a[j]= a[j+1];
a[j+1] = tmp;
flag = 1; // 若发生交换,则设标记为1
}
}
if(flag == 0){
break;// 若没发生交换,则说明数列已有序。
}
}
}
public static void main(String[] args) {
int i = 0;
int[] a = {10, 20, 40, 30, 70, 60, 50};
System.out.println("before sort");
for (i = 0; i < a.length; i++) {
System.out.print(a[i] + "、");
}
bubbleSort2(a,a.length);
System.out.println();
System.out.println("after sort");
for (i = 0; i < a.length; i++) {
System.out.print(a[i] + "、");
}
}
}