冒泡排序思想解析及其实现(java)(1)
来源:互联网 发布:landesk软件下载 编辑:程序博客网 时间:2024/05/22 17:44
1.算法原理(从前往后)
(1)假设元素总数为n,用第一个元素依次和后面n-1个元素相比较,条件满足则交换;
(2)用第二个元素依次和后面n-2个元素想比较,条件满足则交换;
(3)以此类推,最后一次将第n-1个元素与第n个元素相比较。
2.算法复杂度分析
考虑最坏情况:元素初始排列为从大到小,目标顺序为从小到大。外层循环共有n-1次;针对第i次外层循环,有n-i次内层循环。所以时间复杂度为O(n*n)
3.算法伪代码
void sort(int[] arr){ for(int i = 0 ; i < arr.length-1 ; i++) for(int j = i+1 ; j < arr.length ; j++) if(arr[i] > arr[j]) //交换}
4.java语言具体实现
import java.util.Random;public class BubbleSort { public static void main(String[] args) { //定义待排序数组并初始化 int[] arr = new int[6]; Random r = new Random(); for(int i =0 ; i < 6 ; i++) arr[i] = r.nextInt(50); //输出排序之前数组 System.out.println("-----------------------------------------------------------------------------------------"); System.out.print("排序前:\t\t\t"); for (int item : arr) { System.out.print(item+"\t"); } System.out.println(); System.out.println("-----------------------------------------------------------------------------------------"); //冒泡排序的实现 for(int i = 0 ; i < arr.length - 1 ; 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; } //输出排序之后数组 System.out.print(j-i+"轮内层排序后:\t\t"); for (int item : arr) { System.out.print(item+"\t"); } System.out.println(); } //输出排序之后数组 System.out.println("-----------------------------------------------------------------------------------------"); System.out.print((i+1)+"轮外层排序后:\t\t"); for (int item : arr) { System.out.print(item+"\t"); } System.out.println(); System.out.println("-----------------------------------------------------------------------------------------"); } }}
5.排序过程展示
0 0
- 冒泡排序思想解析及其实现(java)(1)
- 冒泡排序思想解析及其实现(java)(2)
- 排序--冒泡排序的基本思想及其代码实现
- 冒泡排序及其优化的 Java 实现
- 冒泡排序Java语言实现及其优化
- 排序算法之冒泡排序的思想以及Java实现
- 冒泡排序函数及其编程思想
- java冒泡排序、选择排序、插入排序算法的核心思想及其比较
- java的冒泡排序思想
- Java和C实现的冒泡排序(基本思想)
- 简单选择、冒泡、插入排序思想及Java实现代码
- # Java实现冒泡排序—详细解析优化版冒泡
- 插入排序思想及其实现
- 快速排序的基本思想及其java的实现
- 八大排序算法思想,时间复杂度,稳定性、及其java实现
- java 冒泡排序及其改进
- Java 冒泡排序及其改进
- 排序--计数排序思想及其代码实现
- getBackground().setAlpha所导致问题
- K折交叉验证中k值大小和bias、variance的关系
- svn 工具conerstone 冲突解决办法
- 内省,BeanInfo
- TCP三次握手
- 冒泡排序思想解析及其实现(java)(1)
- 网易2016年研发工程师编程题(2)
- CLR----公共语言运行时
- Linux内核CFS调度器
- Android源码编译整理总结
- VMware 12中安装CentOS7的相关问题(持续更新)
- Litepal使用心得之建立数据之间的联系
- 【GDOI 2016模拟3.16】装饰
- Http client