冒泡排序法

将第一个值和后面的值,挨个比较,如果手里的值比序列的值小,就交换数据,拿新的数字继续比较,直到最后。

再将第二个值和后面的值,挨个比较。

循环往复,排序完成。

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+左键,快速查看源码
  • 对数组进行排序,会修改数组本身。

最新文章

  1. php发展起源
  2. CentOS7 服务器 JDK+TOMCAT+MYSQL+redis 安装日志
  3. Java中的Timer和TimerTask在Android中的用法(转)
  4. [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)
  5. [SAP ABAP开发技术总结]字段符号FIELD-SYMBOLS
  6. NOIP2011 计算系数
  7. Spark-用户应用程序入门
  8. html5视频小站
  9. 用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST
  10. JS 跳出多重循环
  11. JSON与JS对象的区别
  12. Java读写文件,字符输入流FileReader 和 字符输出流FileWriter
  13. Centos6.5下通过shell脚本快速安装samba服务器
  14. vue 15分钟倒计时
  15. BAT批处理文件,脚本时间值%time:~0,2%%time:~3,2%%time:~6,2%的用法。
  16. echarts3地图如何添加点击事件? 点击地图相应的区域ajax获取并展示本区域省下面所有市的信息
  17. Java中的枚举Enum
  18. VS2015 调试 条件和操作设置
  19. luogu1525 [NOIp2011]关押罪犯 (并查集)
  20. JavaEE笔记(三)

热门文章

  1. 关于vs设置其他主题配色问题
  2. MySQL Replication--全局参数gtid_executed和gtid_purged
  3. tile38 复制配置
  4. 数学与猜想 合情推理模式 (G. 波利亚 著)
  5. ADB连接手机的两种方式(usb数据线连接和wifi连接)
  6. 学习笔记:Javascript 变量 包装对象
  7. 3d tech
  8. docker 常见系统镜像
  9. mysql主从复制常见故障解决
  10. MySQL 5.7 Invalid default value for &#39;CREATE_TIME&#39;报错的解决方法