冒泡排序
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; } } |
相关文章推荐
- 直接插入排序
- Tapestry Issue: Obtained resource by @Inject is NULL
- SQL Server timestamp 数据类型
- JAVA数字格式化
- Android DVM简介
- 修改默认defatu.prop
- STM32 中断——优先级设置
- XZ Utils 介绍
- struts标签消除自定义格式
- 【游戏感想】巫师1
- 机器学习笔记
- [Xamarin] 動態載入Fragment (转帖)
- DataTable To Entity
- 解决Win8.1系统LYNC共享PPT提示“演示文稿遇到问题”
- 关于php中的标量is_scalar
- win7解决蓝牙设置打不开和Bluetooth_Support_Service服务消失
- ProgressDialog返回键不能取消问题
- 防御 攻击
- 字符串模式匹配
- Java ScheduledThreadPoolExecutor延迟或周期性执行任务