Java实现冒泡排序
(1)原理:
1、从第一个数据开始,与第二个数据相比较,如果第二个数据小于第一个数据,则交换两个数据的位置。
2、指针由第一个数据移向第二个数据,第二个数据与第三个数据相比较,如果第三个数据小于第二个数据,则交换两个数据的位置。
3、依此类推,完成第一轮排序。第一轮排序结束后,最大的元素被移到了最右面。
4、依照上面的过程进行第二轮排序,将第二大的排在倒数第二的位置。
5、重复上述过程,没排完一轮,比较次数就减少一次。
6、N个数据排序,需要进行N-1轮排序;第i轮排序需要的比较次数为N-i次。
(2)编码思路:
需要两层循环,第一层循环i表示排序轮数,第二层循环j表示比较的次数。
(3)代码实现:
/**
* 冒泡排序
*/
public class BobSort {
private int[] array;
private int length;
/**
* 构造函数
*/
public BobSort (int[] array){
this.array = array;
this.length = array.length;
}
/**
* 打印数组中数据
*/
public void display(){
for(int i : array){
System.out.print(i+" ");
}
System.out.println();
}
/**
* 冒泡排序
*/
public void bobSort(){
for(int i=0;i
for(int j=0;j
if(array[j]>array[j+1]){
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
}
/**
* 测试方法
*/
public static void main(String[] args){
int[] array = {3,1,2,6,10};
BobSort bobSort = new BobSort(array);
System.out.println("排序前的数据为:");
bobSort.display();
bobSort.bobSort();
System.out.println("排序后的数据为:");
bobSort.display();
}
}
运行结果为:
排序前的数据为:
3 1 2 6 10
排序后的数据为:
1 2 3 6 10