冒泡算法的简单示例
冒泡算法的实现主要有以下三个步骤:
1.双向遍历,内部遍历是仅对一个数字进行的排序遍历,外部遍历是对剩下的需要重新排序的数字进行的新一轮的遍历(每一轮遍历结束后,内部遍历的总次数都会因为上一个数字位置的固定而减少,这也是为什么内部遍历的总次数条件上会减去外部遍历的次数,因为外部遍历了几次,就代表说有几个数已经完成排序,也就是说,内部遍历的次数就不断减少)
2.排序方法,即通过第三方变量temp来完成前后值的互换
3.打印方法,即打印出排序的结果
新手可参考如下方式进行解题:
package com.wuman.test;
/**
* 解耦再一步步实现功能
*/
public class BubbleSort {
public static void main(String[] args) {
int a[]={7,4,1,8,5,2};
/**
* sort排序方法
*/
sort(a);
/**
* print打印方法
*/
print(a);
}
private static void print(int[] a) {
for (int i = 0; i <a.length ; i++) {
System.out.println(a[i] + "");
}
}
private static void sort(int[] a) {
for (int i=a.length-1;i>0;i--){
for (int j = 0; j <i ; j++) {
if(a[j]>a[j+1]){
swap(a,j,j+1);
}
}
}
}
/**
* swap排序方法
* @param a
* @param i
* @param j
*/
static void swap(int a[],int i,int j){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
熟悉之后,可以将这些放在一个静态中进行:
package com.wuman.test;
public class BubbleSort2 {
public static void main(String[] args) {
int b[]={7,4,1,8,5,2};
bubbleSort(b);
}
public static void bubbleSort(int arr[]) {
for(int i =0 ; i<6-1 ; i++) {
for(int j=0 ; j<6-1-i ; j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for (int i = 0; i <arr.length ; i++) {
System.out.print(arr[i]+"==");
}
}
}