冒泡排序的Java实现
来源:互联网 发布:大学生网络兼职论坛 编辑:程序博客网 时间:2024/05/16 07:28
package com.atguigu.me.algorithm.sort;
public class BubblingSort {
public static void main(String[] arrrgs) {
int[] ints = new int[] { 1, 3, 5, 2, 0, 9 };
ints = BubblingSort(ints);
for (int i = 0; i < ints.length; i++) {
System.out.print(ints[i] + "-->");// 0-->1-->2-->3-->5-->9-->
}
}
public static int[] BubblingSort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
// 假设有这样一个数组为 int []list=new list[]{1,2,3,4}; 我们要对其进行升序排序(很显然
// 这里已经是符合要求的升序排列).
// 现在 假若我们用冒泡排序 大概流程会是这样:
// 1.先将1,2进行比较 无须替换 然后2,3比较 无须替换 然后3,4比较 无须替换 完成第一轮冒泡 比较次数为3次
// 2.将2,3进行比较 无须替换 然后3,4进行比较 无须替换 完成第二轮冒泡 比较次数为2次
// 3.将3,4进行比较 无须替换 完成第三轮冒泡 比较次数为1次
// 很显然 我们没有移动一次数字 但是却比较了6次
// 再来看看插入排序如何实现 其详细步骤为:
// 1.先设定1为有序区间 将2和1比较 无须移动 比较一次
// 2.此时1,2均为有序区间 将3和2进行比较 无须移动 直接跳出while循环 比较一次
// 3.此时1,2,3均为有序区间 将4和3进行比较 无须移动 直接跳出while循环 比较一次
// 很显然 我们也没有移动数字 但是只比较了3次
// 总的来说 冒泡排序 循环一次 就确定了第0位为最小值(针对升序) 而插入排序 循环一次 则将有序区间增加一位
// 因此 针对部分有序的集合来说(这里说的有序 是指与我们想得到的顺序一致) 插入排序效率优于冒泡排序
// 但是我们可以针对冒泡排序进行优化 当我们循环某一次 发现没有任何数字移动的时候 我们就已经知道 集合已经排序完成 而无须再进行循环
}
public class BubblingSort {
public static void main(String[] arrrgs) {
int[] ints = new int[] { 1, 3, 5, 2, 0, 9 };
ints = BubblingSort(ints);
for (int i = 0; i < ints.length; i++) {
System.out.print(ints[i] + "-->");// 0-->1-->2-->3-->5-->9-->
}
}
public static int[] BubblingSort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
// 假设有这样一个数组为 int []list=new list[]{1,2,3,4}; 我们要对其进行升序排序(很显然
// 这里已经是符合要求的升序排列).
// 现在 假若我们用冒泡排序 大概流程会是这样:
// 1.先将1,2进行比较 无须替换 然后2,3比较 无须替换 然后3,4比较 无须替换 完成第一轮冒泡 比较次数为3次
// 2.将2,3进行比较 无须替换 然后3,4进行比较 无须替换 完成第二轮冒泡 比较次数为2次
// 3.将3,4进行比较 无须替换 完成第三轮冒泡 比较次数为1次
// 很显然 我们没有移动一次数字 但是却比较了6次
// 再来看看插入排序如何实现 其详细步骤为:
// 1.先设定1为有序区间 将2和1比较 无须移动 比较一次
// 2.此时1,2均为有序区间 将3和2进行比较 无须移动 直接跳出while循环 比较一次
// 3.此时1,2,3均为有序区间 将4和3进行比较 无须移动 直接跳出while循环 比较一次
// 很显然 我们也没有移动数字 但是只比较了3次
// 总的来说 冒泡排序 循环一次 就确定了第0位为最小值(针对升序) 而插入排序 循环一次 则将有序区间增加一位
// 因此 针对部分有序的集合来说(这里说的有序 是指与我们想得到的顺序一致) 插入排序效率优于冒泡排序
// 但是我们可以针对冒泡排序进行优化 当我们循环某一次 发现没有任何数字移动的时候 我们就已经知道 集合已经排序完成 而无须再进行循环
}
- java实现的冒泡排序
- 冒泡排序的Java实现
- Java实现的冒泡排序
- 冒泡排序的java实现
- 冒泡排序的Java实现
- java冒泡排序的实现
- 排序算法的java实现-冒泡排序
- java实现冒泡排序
- Java实现冒泡排序
- Java实现冒泡排序
- Java实现冒泡排序
- java实现冒泡排序
- 冒泡排序 Java实现
- JAVA实现冒泡排序
- java实现冒泡排序
- java实现冒泡排序
- 冒泡排序java实现
- 冒泡排序 java实现
- Linux 2.4.x 网络协议栈QoS模块(TC)的设计与实现
- mysql数据库版本查看
- boundingRectWithSize:options:attributes:context:
- WM_SIZING和WM_SIZE区别及EasySize类的使用
- S5pv210 出现一个离奇wince6.0 activesync 软件连接问题
- 冒泡排序的Java实现
- 焊接 0.5mm 间距 40pin 软排线底座FPC 的经验小谈
- 括号匹配问题
- 常见通信类型
- 从ramdist根文件系统启动linux
- Django源代码阅读分析-2:持久层结构分析
- 上传附件commonsnet1.4.1.jar与webligic中的Jar冲突问题
- 使用Jquery+EasyUI 进行框架项目开发案例讲解之二---用户管理源码分享
- show命令