廖雪峰Java1-4数组操作-2数组排序
冒泡排序法
将第一个值和后面的值,挨个比较,如果手里的值比序列的值小,就交换数据,拿新的数字继续比较,直到最后。
再将第二个值和后面的值,挨个比较。
循环往复,排序完成。
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+左键,快速查看源码
- 对数组进行排序,会修改数组本身。
廖雪峰Java1-4数组操作-2数组排序的更多相关文章
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...
- JavaScript 数组操作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- PHP内核探索之变量(4)- 数组操作
上一节(PHP内核探索之变量(3)- hash table),我们已经知道,数组在PHP的底层实际上是HashTable(链接法解决冲突),本文将对最常用的函数系列-数组操作的相关函数做进一步的跟踪. ...
- 【php学习】数组操作
1.json字符串和数组之间的转换 json_decode($jsonStr) json字符串解码为php变量,若第二个参数默认为false,返回一个对象:若第二个参数设置true,则返回一 ...
- PHP数组操作大全
<?php /** * File: phpstudy : array_test.php * Created by PhpStorm. * User: IhMfLy Pheonix@jtv-070 ...
- OC2_数组操作
// // main.m // OC2_数组操作 // // Created by zhangxueming on 15/6/11. // Copyright (c) 2015年 zhangxuemi ...
- JavaScript 数组操作备忘
数组的定义: 方法1. var mycars=new Array()mycars[0]="Saab"mycars[1]="Volvo"mycars[2]=&qu ...
- 爬虫:把廖雪峰的教程转换成 PDF 电子书
写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 ...
- Python自学笔记-关于切片(来自廖雪峰的官网Python3)
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. 切片 L[0: ...
随机推荐
- 03 重定向,请求转发,cookie,session
重定向: /* 之前的写法 response.setStatus(302); response.setHeader("Location", "login_success. ...
- c# 委托初用法
public delegate void Print(string printStr); public static void DelegateMethod(string printStr) { Co ...
- 转:《Javascript模块化编程》
(一):模块的写法 转载至:http://www.ruanyifeng.com/blog/2012/10/javascript_module.html (二):AMD规范 转载至:http://www ...
- 【传输协议】TCP、IP协议族之数字签名与HTTPS详解
文章转载出自:https://blog.51cto.com/11883699/2160032 安全的获取公钥 细心的人可能已经注意到了如果使用非对称加密算法,我们的客户端A,B需要一开始就持有公钥,要 ...
- CH4907 作诗
题意 4907 作诗 0x49「数据结构进阶」练习 描述 神犇SJY虐完HEOI之后给傻×LYD出了一题:SHY是T国的公主,平时的一大爱好是作诗.由于时间紧迫,SHY作完诗之后还要虐OI,于是SHY ...
- diskcache
DiskCache: Disk Backed Cache DiskCache is an Apache2 licensed disk and file backed cache library, wr ...
- MySQL--派生表临时结果集中的AutoKey
在某些场景中,需要对派生表生成临时结果集进行materialized,如果该临时结果集中包含索引键,那么查询有可能通过该索引键来进行优化. 如对下面查询: SELECT T2.purpose_code ...
- MySQL Disk--SSD和HDD的性能
========================================================= 机械硬盘的性能 7200转/分的STAT硬盘平均物理寻道时间是9ms 10000转/ ...
- Hasura GraphQL schema 生成是如何工作的
不像大部分的graphql 引擎,使用标准的graphql 规范的处理模型,Hasura graphql 不存在resolver 的概念(实际上是有的,只是转换为了sql语法) 以下是Hasura g ...
- Embedded SW uses STL or not
As the complexity increasing of embedded software, more and more projects/products use C++ as the im ...