排序算法一:冒泡排序
来源:互联网 发布:文件md5加密 java 编辑:程序博客网 时间:2024/06/09 21:05
冒泡排序
冒泡排序(Bubble Sort)可以称的上是最为经典的排序算法。它的思路比较简单,即从后向前,逐个比较相邻的两项,寻找最优值(最大或最小),使得该值始终向着我们所需要的方向前进,直到最优值达到它的目的地为止。(为方便起见,我这里统一都讨论顺序排序——从小到大排序,即每一轮都寻找最小的元素放在队列的前端位置。)第一轮比较即获得最小的元素放在队列的第一个位置,第二轮比较获得除最小元素外的所剩余的元素的最小值(即次小者)放在队列的第二个位置,以此类推。
下面给出Java代码
package sort.bubble;public class BubbleSort {/** * @param args */public static void main(String[] args) {//设置元素个数int count = 0;//获得随机可重复元素组//int[] data = createData(count);//随机不可重复元素组int[] data = createNoRepeatData(count);for (int i = 0; i < data.length; i++) {System.out.print(data[i] + " ");}//冒泡排序bubbleSort(data);System.out.println("\r\n" + "=================");for (int i = 0; i < data.length; i++) {System.out.print(data[i] + " ");}}/** * 冒泡算法 * @param data * @return */private static void bubbleSort(int[] data) {if (null == data || data.length <= 1) {return;}for (int i = 0; i < data.length; i++) {//从后向前,相邻两项进行比较for (int j = data.length-1; j > i; j--) {if(data[j-1]>data[j]){swap(data,j-1,j);}}}}/** * 数组内 i 坐标元素与 j 坐标元素互换 * @param data * @param i * @param j */private static void swap(int[] data, int i, int j) {int temp = data[i];data[i] = data[j];data[j] = temp;}/** * 获得随机不可重复数组 * @param data * @param count * @return */private static int[] createNoRepeatData(int count) {int[] data = new int[count];int randomNum = 0;boolean isExist = false;for (int i = 0; i < data.length; i++) {while (true) {randomNum = (int) Math.round(Math.random()*count);isExist = false;for (int j = 0; j < i; j++) {if (data[j] == randomNum) {isExist = true;break;}}if (!isExist) {data[i] = randomNum;break;}}}return data;}/** * 获得随机可重复数组 * @param data * @param count * @return */private static int[] createData(int count) {int[] data = new int[count];for (int i = 0; i < data.length; i++) {data[i] = (int) Math.round(Math.random()*count);}return data;}}
0 0
- 排序算法《一》冒泡排序
- 排序算法一 冒泡排序
- 排序算法一:冒泡排序
- 排序算法一:冒泡排序
- 排序算法一:冒泡排序
- 排序算法(一):冒泡排序
- 排序算法(一)-冒泡排序
- C#算法(一)冒泡排序
- 每天一算法--冒泡排序
- 算法学习(一、冒泡排序)
- <每日一算法>冒泡排序
- 排序算法系列一(冒泡排序)
- C#排序算法(一)冒泡排序(Bubble)
- java排序算法学习(一)--冒泡排序
- 浅谈排序算法(一)之冒泡排序
- 排序算法一之冒泡排序
- 排序算法(一)- 冒泡排序
- Java排序算法(一):冒泡排序
- 数据库课程设计(电脑配件库存管理系统)
- Kaggle : Display Advertising Challenge( ctr 预估 )
- java多线程—多线程的实现
- 李开复:走向全球的两大路径,中美何以各占其一
- 类与对象:构造函数和析构函数
- 排序算法一:冒泡排序
- 串口相关设置寄存器
- opencv学习系列(三)---直线检测
- php初学者之表达式、运算符和函数
- 走迷宫
- Java的4种代码块
- C编译器剖析_1.5 结合C语言来学汇编
- android 调试 wpa_supplicant 小技巧
- Random Forest