您的位置:首页 > 编程语言 > Java开发

冒泡排序-java实现

2016-07-10 16:45 453 查看

冒泡排序:

重复地比较相邻的元素,且在它们不符合顺序时将它们互换,从而完成对某一个列表的排序。

排序策略:

1.扫描列表且比较相邻两个元素,如果不是按要求的顺序排列则将它们互换,这样就把最大值“冒泡”到最后一个位置,这个位置就是该值在列表中的最终排序好的位置;

2.再次扫描列表,冒泡到倒数第二个位置;

3.再次扫描列表,冒泡倒数第3,4,...n个位置直到列表排序完成。

例子:

初始:2 8 5 1 3

step1:2 5 1 3 8(将8冒泡到最终位置)

step2:2 1 3 5 8(将5冒泡到最终位置)

step3:1 2 3 5 8(将3冒泡到最终位置)

step4:1 2 3 5 8(将2冒泡到最终位置)

step5:1 2 3 5 8(将1冒泡到最终位置)

最终:1 2 3 5 8

Code:

/*
*Created on 2016年7月10日
*Copyright 2016 Yong Cai Limited crop. All Rights Reserved
*
*/

package org.cy.sort;

public class BubbleSort {

public static void main(String[] args) {
String[] str = {"nba","haha","school","cs","aha"};
printArr(bubbleSort(str));
}

public static <T extends Comparable<? super T>> T[] bubbleSort(T[] data){
int len = data.length;
T tmp;
for(int pos = 0; pos < len; pos++){
for(int scan = 0; scan < len - pos - 1; scan++){
if(data[scan].compareTo(data[scan + 1]) > 0){
tmp = data[scan];
data[scan] = data[scan + 1];
data[scan + 1] = tmp;
}
}
}
return data;
}

public static <T> void printArr(T[] data){
int len = data.length;
for(int i = 0; i < len; i++){
System.out.print(data[i] + " ");
}
System.out.println();
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息