您的位置:首页 > 其它

冒泡排序

2013-11-27 09:55 253 查看

冒泡排序

思想

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端,故名。

实例

package com.mylearn.algorithm.sort;

import org.apache.commons.lang.xwork.StringUtils;

/**

* Created by IntelliJ IDEA.

* User: yingkuohao

* Date: 13-9-9

* Time: 上午11:19

* CopyRight:360buy

* Descrption: 冒泡排序,循环比较,循环一次,找到一个最大的沉底,时间复杂度n*n

* To change this template use File | Settings | File Templates.

*/

public class BubboSort {

public static void main(String args[]) {

Integer[] integers = new Integer[]{12, 15, 9, 24, 6, 31};

BubboSort bubboSort = new BubboSort();

System.out.println("初始:" + StringUtils.join(integers, ","));

bubboSort.execute(integers);

System.out.println("结果:" + StringUtils.join(integers, ","));

}

/**

* 冒泡排序

* @param objects

*/

public void execute(Integer[] objects) {

for (int i = objects.length-1 ; i > 0; i--) {

//注意i的范围,最大为长度-1,否则下边的j+1会溢出

for (int j = 0; j < i; j++) {

//循环比较,每轮找到一个最大值直至沉底。

if (objects[j] > objects[j + 1]) {

//如果j>j=1,则交换

swap(objects,j,j+1);

}

}

}

}

/**

* 交换

* @param integers

* @param i

* @param j

*/

private void swap(Integer[] integers, Integer i,Integer j) {

Integer tmp = integers[i];

integers[i] = integers[j];

integers[j] = tmp;

}

}

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