重拾java系列一java基础(3)
这一章主要复习下以前所接触的算法,
(1)选择排序法:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
/**
* 选择排序算法 在未排序序列中找到最小元素,存放到排序序列的起始位置
* 再从剩余未排序元素中继续寻找最小元素,然后放到前面已排序序列末尾。
* 以此类推,直到所有元素均排序完毕。
*
* @param numbers
*/
public static void selectSort(int[] numbers) {
int size = numbers.length; // 数组长度
; // 中间变量
; i < size-; i++) {//i代表最后排好顺序的index
int k = i; // 待确定的位置
// 选择出应该在第i个位置的数
; j > i; j--) {
if (numbers[j] < numbers[k]) {
k = j;//只要后面的数要比待确定位上的数小,就往前挪到k对应位置
1819 }
}
// 交换两个数
temp = numbers[i];
numbers[i] = numbers[k];
numbers[k] = temp;
}
}
(2)冒泡排序法:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
有重泡下沉和轻泡上浮两种形式:
重泡下沉:
public static void bubbleSort(int[] ary) {
; i < ary.length - ; i++) {
; j < ary.length - i - ; j++) {
]) {
int t = ary[j];
ary[j] = ary[j + ];
ary[j + ] = t;
}
}
}
}
轻泡上浮:
public static void bubbleSort(int[] ary) {
; i < ary.length - ; i++) {
; j > ; j--) {
]) {
int t = ary[j];
ary[j] = ary[j - ];
ary[j - ] = t;
}
}
}
}
(3)插入排序:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。
public static void insertSort(int[] ary){
int i,j,k;
; i<ary.length; i++){
k = ary[i];//step1,先取出作为判断标准
; j>= && ary[j]>k; j--){
ary[j+] = ary[j];//step2,移动a[j]-->a[j+1]
}
ary[j+] = k;//step3,插入,
}
}
其他算法请参考:http://www.cnblogs.com/0201zcr/p/4764427.html
http://www.cnblogs.com/sevenyuan/archive/2009/12/04/1616897.html
非常感谢原作者
重拾java系列一java基础(3)的更多相关文章
- 重拾java系列一java基础(1)
前言,不知不觉,从接触java到工作至今已有两年的时间,突然感觉自己的基础知识还很薄弱,有些知识虽然知道,但是停留在表面上,没有深挖,或者实践过,感觉掌握的很肤浅,而且时间一长,就觉得忘记了,我觉得这 ...
- 【java系列】java开发环境搭建
描述 本篇文章主要讲解基于windows 10系统搭建java开发环境,主要内容包括如下: (1)安装资料准备 (2)安装过程讲解 (3)测试是否安装成功 (4)Hello Word测试 1 安装 ...
- 重拾java系列一java基础(2)
1.分支流程控制 if(布尔表达式/分支条件){ //语句块} if(布尔表达式/分支条件){ //语句块1}else{ //语句块2} if(条件1){ //语句块1}else if(条件2 ...
- 重拾java系列一java基础(4)
本章主要回顾一些类的相关知识: (1)static: static 静态的: 属于类的资源, 使用类名访问. 静态属性: 只有一份的变量 静态方法: 是属于类方法, 可以使用类名直接访问. 静态方 ...
- java系列(1/4)基础阶段-MySQL(2/13)
本单元目标 一.为什么要学习数据库 二.数据库的相关概念 DBMS.DB.SQL 三.数据库存储数据的特点 四.初始MySQL MySQL产品的介绍 MySQL产品的安装 ★ MySQL服务的启动和停 ...
- Java系列: JAVA字符串格式化-String.format()的使用(zz)
常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重 ...
- 重拾Java Web应用的基础体系结构
目录 一.背景 二.Web应用 2.1 HTML 2.2 HTTP 2.3 URL 2.4 Servlet 2.4.1 编写第一个Servlet程序 2.5 JSP 2.6 容器 2.7 URL映射到 ...
- 夯实Java基础系列5:Java文件和Java包结构
目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...
- 【Java】 重拾Java入门
[概论与基本语法] 取这个标题,还是感觉有些大言不惭.之前大三的时候自学过一些基本的java知识,大概到了能独立写一个GUI出来的水平把,不过后来随着有了其他目标,就把这块放下了.之后常年没有用,早就 ...
随机推荐
- webpages框架使用@razor语法向js代码传递Json字符串
进入web开发时间太短,一个人尝试着做了几个初级项目,遇到了太多的困难.尽管不是学开发专业的,仅为爱好所以硬着头皮坚持了下来. 将遇到的问题记录下来,备查. 使用vs2015中asp.net razo ...
- Java虚拟机类加载机制——案例分析
转载: Java虚拟机类加载机制--案例分析 在<Java虚拟机类加载机制>一文中详细阐述了类加载的过程,并举了几个例子进行了简要分析,在文章的最后留了一个悬念给各位,这里来揭开这个悬 ...
- [Java] java文件读写操作大全
一.获得控制台用户输入的信息 //可以返回用户输入的信息,不足之处在于不支持中文输入,有待进一步改进 public String getInputMessage() throws IOExceptio ...
- css 描述css reset的作用和用途。
描述css reset的作用和用途. 作用 : 因为浏览器的品种很多,每个浏览器的默认样式也是不同的.通过重新定义标签样式.“覆盖”浏览器的CSS默认属性. 有最简单的*{margin:0 ; pa ...
- 实验二Step1-有序顺序表
#include<stdio.h> struct job { ];//作业名称 char status;//当前状态 int arrtime;//到达时间 int reqtime;//要求 ...
- (16)odoo8 API 指南
http://odoo-new-api-guide-line.readthedocs.org/en/latest/index.html
- MyBatis框架Maven资源
<!-- MyBatis框架 --> <dependency> <groupId>org.mybatis</groupId> <artifac ...
- hdu 1829 A Bug's Life(分组并查集(偏移量))
A Bug's Life Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- 漫谈iOS Crash收集框架
漫谈iOS Crash收集框架 Crash日志收集 为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如 KSCrash,plcrashreporter,C ...
- css hack整理:区别FF,IE8,IE7,IE6,SF,CH浏览器
css hack整理:区别FF,IE8,IE7,IE6,SF,CH浏览器 2013年03月24日 ⁄ CSS ⁄ 共 716字 ⁄ 暂无评论 前端开发最要命的事就是处理浏览器的兼容性问 ...