排序算法之—冒泡排序
来源:互联网 发布:淘宝客服的工资多少 编辑:程序博客网 时间:2024/05/11 20:38
冒泡排序 两层控制
- 两层循环作冒泡,外层轮数做比较,比较轮数多少次总数减一来控制
- 内层循环记次数,次数变化看轮数,每轮比较得一数,放在最后最值
数,每轮要比多少次?比较总数要减一然后减掉外层去.
实现冒泡排序代码块如下
public static void bubbleSort(DataWrap[] data) { System.out.println("开始排序"); int arrayLength = data.length; for (int i = 0; i < arrayLength - 1; i++) { boolean flag = false; for (int j = 0; j < arrayLength - 1 - i; j++) { if (data[j].compareTo(data[j + 1]) > 0) { DataWrap temp = data[j + 1]; data[j + 1] = data[j]; data[j] = temp; flag = true; } } System.out.println(java.util.Arrays.toString(data)); if (!flag) break; }
创建测试数据类 如下:
public class DataWrap implements Comparable<DataWrap>{ int data; String flag; public DataWrap(int data,String flag){ this.data = data; this.flag = flag; } public String toString(){ return data + flag; } //根据data实例变量来决定两个dataWrap的大小 @Override public int compareTo(DataWrap dw) { return this.data > dw.data? 1 : (this.data == dw.data? 0 : -1); }}
主方法创建DataWrap类对象生成测试数据 并调用冒泡排序实现如下:
public static void main(String[] args) { DataWrap[] data = { new DataWrap(9, ""), new DataWrap(-16, ""), new DataWrap(21, "*"), new DataWrap(23, ""), new DataWrap(-30, ""), new DataWrap(-49, ""), new DataWrap(21, ""), new DataWrap(30, "*"), new DataWrap(30, "")}; System.out.println("排序之前:\n" + java.util.Arrays.toString(data)); bubbleSort(data); System.out.println("排序之后:\n" + java.util.Arrays.toString(data)); }
0 0
- 算法之—冒泡排序
- 算法——排序之冒泡排序
- 排序算法之——冒泡排序
- 排序算法之——冒泡排序
- 排序算法之—冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 【排序算法】之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 排序算法之冒泡排序
- 单例模式分析和思想
- 尝试 耐心 失败 重复
- Ubuntu中为Eclipse添加桌面启动快捷方式
- 活动传递时Android机制 造成的问题
- 推荐一个操作系统的lab
- 排序算法之—冒泡排序
- 装机名词
- JavaScript的type属性等于text/html妙用
- [LeetCode-136]Single Number(java)
- linkedList
- 设计和部署互联网级别的可扩展服务--On Designing and Deploying Internet-Scale Services
- BaiduMap---百度地图官方Demo之UI控制功能(介绍开关手势功能和显示隐藏UI控件)
- SLAM, in my eyes
- Ubuntu系统下搭建lamp环境