首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

排序算法 - 冒泡排序

2013-08-13 
排序算法 -- 冒泡排序冒泡排序将需要排序的列表,从第一位开始,每相临两个元素比较,如果某一位大于(或小于)

排序算法 -- 冒泡排序

冒泡排序

将需要排序的列表,从第一位开始,每相临两个元素比较,如果某一位大于(或小于)他的下一位,则交换两个元素位置,直至不能交换。

?

这种排序的平均时间复杂度是平方级的,效率不高,容易实现。

/** * BubbleSort.java *  * @author   xieyan * @date     2013/06/20 * @version  1.0 */package sort;/** * BubbleSort.java */public class BubbleSort {/* * 冒泡排序: * 将需要排序的列表,从第一位开始,每相临两个元素比较,如果某一位大于(或小于)他的下一位,则交换两个元素位置。 * 直至不能交换。 *  * 这种排序的平均时间复杂度是平方级的,效率不高,容易实现 *//** * bubbleSortAsc *  * <PRE> * 升序 * </PRE> *  * @param arr */public static int[] bubbleSortAsc(int[] arr) {if(arr == null) {return null;}int temp = 0;for (int i = arr.length - 1; i > -1; i--) {for(int j = 0; j < i; j++) {if(arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}return arr;}/** * bubbleSortDesc *  * <PRE> * 降序 * </PRE> *  * @param arr */public static int[] bubbleSortDesc(int[] arr) {if(arr == null) {return null;}int temp = 0;for (int i = arr.length - 1; i > -1; i--) {for(int j = 0; j < i; j++) {if(arr[j] < arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}return arr;}public static void main(String[] args) {int[] a = new int[] { 5, 7, 8, 3, 4, 2, 9, 1, 6 };int[] b = bubbleSortAsc(a);for (int i = 0; i < b.length; i++) {System.out.println(b[i]);}b = bubbleSortDesc(a);for (int i = 0; i <  b.length; i++) {System.out.println(b[i]);}}}

?

热点排行