排序算法-冒泡排序(Bubble Sort)
package com.wangzhu.sort;
/**
* 冒泡排序算法
* @ClassName: BubbleSort
* @Description: TODO
* @author wangzhu
* @date 2013-8-12 上午10:37:28
*
*/
public class BubbleSort { /**
* @param args
*/
public static void main(String[] args) {
int[] arr1 = new int[]{10,9,8,7,6,5,4,3,2,1};
sort(arr1);
int[] arr2 = new int[]{1,2,3,4,5,6,7,8,9,10};
sort(arr2);
int[] arr3 = new int[]{1,1,1,2,2,3,3,3,4,5};
sort(arr3);
int[] arr4 = new int[]{2,2,1,3,1,1,1,2,3,3,2};
sort(arr4);
int[] arr5 = new int[]{11,-9,-8,17,-6,51,14,31,42,51};
sort(arr5);
int[] arr6 = new int[]{-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
sort(arr6);
int[] arr7 = new int[]{-1,-1,-1,-2,-2,-3,-3,-3,-4,-5};
sort(arr7);
int[] arr8 = new int[]{2,2,1,2,3,4,5,6,8,9,10,10,10};
sort(arr8); } /**
* 冒泡排序:每次将最小的放在最前头
* @param arr
*/
public static void sort(int[] arr){
for(int i = 0 ,len = arr.length; i < len;i ++){
boolean isSort = true;//记录每一趟是否进行了交换,若是没有,则说明数列已排好序
//从最后面的元素开始进行,直到最前面的第二个未排序的元素
for(int j = len - 1;j > i; j--){
//前面元素的大于后面的元素,则交换
if(arr[j - 1] > arr[j]){
int temp = arr[j - 1];
arr[j - 1] = arr[j];
arr[j] = temp;
isSort = false;
}
}
if(isSort){
break;
}
}
show(arr);
} private static void show(int[] arr) {
for(int num:arr){
System.out.print(" " + num);
}
System.out.println("===============");
}
}
根据冒泡排序算法的定义,简单的实现了一下,仅供参考,若有不对,请指出,谢谢!
排序算法-冒泡排序(Bubble Sort)的更多相关文章
- 排序算法--冒泡排序(Bubble Sort)_C#程序实现
排序算法--冒泡排序(Bubble Sort)_C#程序实现 排序(Sort)是计算机程序设计中的一种重要操作,也是日常生活中经常遇到的问题.例如,字典中的单词是以字母的顺序排列,否则,使用起来非常困 ...
- 经典排序算法 - 冒泡排序Bubble sort
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子 ...
- 房上的猫:经典排序算法 - 冒泡排序Bubble sort
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束,以此类推例子为从小到大排 ...
- [算法] 冒泡排序 Bubble Sort
冒泡排序(Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没 ...
- 冒泡排序(Bubble Sort)
常见的排序算法有Bubble Sort.Merge Sort.Quick Sort 等,所有排序算的基本法思想都是把一个无限大的数据规模通过算法一步步缩小,指导最后完成排序. 这里分享一下Buuble ...
- java排序算法之冒泡排序(Bubble Sort)
java排序算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数 ...
- 【排序算法】冒泡排序(Bubble Sort)
0. 说明 参考 维基百科中的冒泡排序 冒泡排序 (Bubble Sort) 是与插入排序拥有相等的执行时间,但是两种算法在需要的交换次数却很大地不同. 在最坏的情况,冒泡排序需要 O(n2) 次交 ...
- Java中的经典算法之冒泡排序(Bubble Sort)
Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...
- Java 排序算法-冒泡排序及其优化
Java 排序算法-冒泡排序及其优化 什么是冒泡排序 基本写法 优化后写法 终极版本 源码及测试 什么是冒泡排序 这里引用一下百度百科上的定义: 冒泡排序(Bubble Sort),是一种计算机科学领 ...
- 经典排序算法 – 插入排序Insertion sort
经典排序算法 – 插入排序Insertion sort 插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕. 插入排序方法分直接插入排序和折半插入排序两种, ...
随机推荐
- C# 打印文件
这几天做的功能用到了打印这个功能,直接在网上找了点demo,在这里做个备份. 1.直接打印DataTable using System; using System.Collections.Generi ...
- java中IO流的操作
读取转换流--读取键盘录入中键盘录入一行数据并打印其大写,发现就是读一行数据的原理.也就是readLine方法.能不能直接使用readLine方法来完成键盘录入一行数据的读取呢?readLine方法是 ...
- ### 学习《C++ Primer》- 6
Part 6: 拷贝控制(第13章) // @author: gr // @date: 2015-01-08 // @email: forgerui@gmail.com 一.拷贝.赋值与销毁 拷贝构造 ...
- OC2_数组操作
// // main.m // OC2_数组操作 // // Created by zhangxueming on 15/6/11. // Copyright (c) 2015年 zhangxuemi ...
- 【开发】Dialog 对话框
提示:Dialog 继承自 Panel,有大量的方法在 Panel 中已被定义,可以复用. Dialog API:http://www.jeasyui.net/plugins/181.html Pan ...
- Update files embedded inside CAB file.
References: https://community.flexerasoftware.com/showthread.php?182791-Replace-a-single-file-embedd ...
- [技术翻译] 构建现代化的Objective-C (下)
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3563880.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- 【HeadFirst设计模式】8.模板方法模式
模板方法 定义: 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使用得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 策略模式: 定义一个算法家族,并让这些算法可以互 ...
- 在Mac OS X中使用VIM开发STM32(2)
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 在我先前的博文⎣在Mac OS X中使用VIM开发STM32(1)⎤中,我们安装完成了MACVIM,这一 ...
- Java知识总结--JDBC&XML
1说说jdbc连接数据库的步骤 1.注册驱动 2.获得连接 3.执行sql语句 4.获得结果集,进行结果集的处理 5.关闭结果集 6.关闭连接,释放资源 2 statement 和preparedst ...