JavaSE 学习参考:数组排序
来源:互联网 发布:把ubuntu安装到u盘上 编辑:程序博客网 时间:2024/05/18 02:24
数组排序是数组操作常用操作之一,通过排序将数组中原来顺序按照升序(从小到大)或降序(从大到小)重新组织。数组排序算法很多,最常用的是冒泡排序。本文演示冒泡排序算法,下面以升序排序为例讲解。
冒泡排序可以理解为需要若干趟相邻元素交换,每趟交换的结果是最大元素排在最后。以下面包含10个元素数组为例。
5
7
2
9
4
0
8
6
3
1
每一趟相邻元素交换,原则是前者大于后者,则将两者交换,否则不动。
第一趟:10个元素相邻比较需要9次。最终9排在最后
5
7
2
9
4
0
8
6
3
1
5
7
2
9
4
0
8
6
3
1
5
2
7
9
4
0
8
6
3
1
5
2
7
9
4
0
8
6
3
1
5
2
7
4
9
0
8
6
3
1
5
2
7
4
0
9
8
6
3
1
5
2
7
4
0
8
9
6
3
1
5
2
7
4
0
8
6
9
3
1
5
2
7
4
0
8
6
3
9
1
5
2
7
4
0
8
6
3
1
9
第二趟:前9个相邻元素参与比较(因为最后一个已是最大的了,不需要参与)需要8次,最终8排在9之前。
依次类推,每趟相邻元素比较得互剩余元素最大元素放上趟排序得到最大元素之前,因此需要9次。
代码如下:
public static void main(String[] args) {
int[] arr={5,7,2,9,4,0,8,6,3,1};
for(int i=0;i<arr.length-1;i++){
for(int j=i;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
- JavaSE 学习参考:数组排序
- JavaSE 学习参考:数组
- JavaSE 学习参考:数组遍历
- JavaSE 学习参考:数组遍历
- JavaSE 学习参考:二维数组定义
- JavaSE 学习参考:二维数组遍历
- JavaSE 学习参考:数组增删改查操作
- JavaSE 学习参考:常量
- JavaSE 学习参考:接口
- JavaSE 学习参考:迭代器
- JavaSE 学习参考:TreeSet
- JavaSE 数组排序
- javaSE基础-数组排序
- JavaSE基础数组排序
- JavaSE 学习参考:变量(1)
- JavaSE 学习参考:变量(2)
- JavaSE 学习参考:变量(3)
- JavaSE 学习参考:类型转换
- HDU 1159 Common Subsequence(基础dp)
- 阿里云-笑话Api使用教程
- Android自定义相机
- 继承的构造与析构
- nginx 工作原理,进程模型,事件处理,配置系统和模块化体系
- JavaSE 学习参考:数组排序
- 深入分析AbstractQueuedSynchronizer共享锁的实现原理:CountDownLatch
- 简单易懂的安装热部署插件Jrebel
- opencv学习_10 (图像和轮廓的匹配(hu矩))
- MyBatis使用二级缓存
- 浅谈Glide框架
- 分糖果编程
- Http请求长时间等待无结果返回
- 判断素数(Miller_Rabin算法)