廖雪峰Java1-4数组操作-2数组排序
2024-08-25 16:33:59
冒泡排序法
将第一个值和后面的值,挨个比较,如果手里的值比序列的值小,就交换数据,拿新的数字继续比较,直到最后。
再将第二个值和后面的值,挨个比较。
循环往复,排序完成。
int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
for (int i = 0;i < ns.length;i++){
for(int j = i+1;j < ns.length;j++){
if (ns[i] > ns[j]){
//交换ns[i]和ns[j]
int tmp = ns[j];
ns[j] = ns[i];
ns[i] = tmp;
}
}
}
System.out.println(Arrays.toString(ns));
使用jdk的Arrays.sort()直接排序
sort对大数组进行快速排序,对小数组仍使用冒泡排序
int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
Arrays.sort(ns);
System.out.println(Arrays.toString(ns));
查看源码
使用command+鼠标左击,即可查看源码。
如果没有jdk源码,只要将Attach Source——External Location添加jdk源码即可。
windows:在jdk的根目录下
Mac:jdk1.8.0_131.jdk/Contents/Home/下
总结
- 常用的排序算法:冒泡排序、比较排序、快速排序
- 冒泡排序使用两层for循环实现
- 交换两个变量的值需要通过一个临时变量
- 可以直接使用jdk的Arrays.sort()排序
- ctrl+左键/command+左键,快速查看源码
- 对数组进行排序,会修改数组本身。
最新文章
- php发展起源
- CentOS7 服务器 JDK+TOMCAT+MYSQL+redis 安装日志
- Java中的Timer和TimerTask在Android中的用法(转)
- [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)
- [SAP ABAP开发技术总结]字段符号FIELD-SYMBOLS
- NOIP2011 计算系数
- Spark-用户应用程序入门
- html5视频小站
- 用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST
- JS 跳出多重循环
- JSON与JS对象的区别
- Java读写文件,字符输入流FileReader 和 字符输出流FileWriter
- Centos6.5下通过shell脚本快速安装samba服务器
- vue 15分钟倒计时
- BAT批处理文件,脚本时间值%time:~0,2%%time:~3,2%%time:~6,2%的用法。
- echarts3地图如何添加点击事件? 点击地图相应的区域ajax获取并展示本区域省下面所有市的信息
- Java中的枚举Enum
- VS2015 调试 条件和操作设置
- luogu1525 [NOIp2011]关押罪犯 (并查集)
- JavaEE笔记(三)
热门文章
- 关于vs设置其他主题配色问题
- MySQL Replication--全局参数gtid_executed和gtid_purged
- tile38 复制配置
- 数学与猜想 合情推理模式 (G. 波利亚 著)
- ADB连接手机的两种方式(usb数据线连接和wifi连接)
- 学习笔记:Javascript 变量 包装对象
- 3d tech
- docker 常见系统镜像
- mysql主从复制常见故障解决
- MySQL 5.7 Invalid default value for &#39;CREATE_TIME&#39;报错的解决方法