Java排序算法——插入排序
import java.util.Arrays; //=================================================
// File Name : Select_Sort
//------------------------------------------------------------------------------
// Author : Common //类名:Arrays_Select
//属性:
//方法:
class Arrays_Insert{
private int[] arrays;
private int curNum; public Arrays_Insert(int max) { //建立一个max长度的空数组
super();
arrays = new int[max];
curNum = 0;
} public void insert(int value){ //往空的数组里面增加元素
arrays[curNum] = value;
curNum++;
} public void display(){ //显示数组
System.out.println(Arrays.toString(arrays));
} private void swap(int one,int two){ //交换
int temp = arrays[one];
arrays[one] = arrays[two];
arrays[two] = temp;
} public void InsertSort(){
int out,in; for(out=1;out<curNum;out++){ //从第2个开始,和第1个比较
int temp = arrays[out];
in = out; //in等于out,比较从in-1开始
while(in>0 && arrays[in-1] >= temp){ //如果大于temp,就往右移动
arrays[in] = arrays[in-1]; 例如:2 3 1 temp=1 -> 2 3 3 temp=1 -> 2 2 3 temp=1 -> 1 2 3 temp=1
--in;
}
arrays[in] = temp;
}
} } //主类
//Function : Select_Sort public class Insert_Sort { public static void main(String[] args) {
// TODO 自动生成的方法存根
int maxSize = 100;
Arrays_Insert arrays_demo = new Arrays_Insert(maxSize);
arrays_demo.insert(58);
arrays_demo.insert(57);
arrays_demo.insert(56);
arrays_demo.insert(60);
arrays_demo.insert(59);
arrays_demo.display();
arrays_demo.InsertSort();
arrays_demo.display();
} }

冒泡 N^2/2比较 N^2/4交换
选择 N^2/2比较 比冒泡少的交换
插入 N^2/4比较 N^2/4复制
复制是交换的3倍
Java排序算法——插入排序的更多相关文章
- java排序算法-插入排序
public class InsertSortUtils { public static void main(String[] args) { insertSortTest(); shellSortT ...
- java排序算法(七):折半插入排序
java排序算法(七):折半插入排序 折半插入排序法又称为二分插入排序法,是直接插入排序法的改良版本,也需要执行i-1趟插入.不同之处在于第i趟插入.先找出第i+1个元素应该插入的位置.假设前i个数据 ...
- java排序算法(六):直接插入排序
java排序算法(六):直接插入排序 直接插入排序的基本操作就是将待的数据元素按其关键字的大小插入到前面的有序序列中 直接插入排序时间效率并不高,如果在最坏的情况下,所有元素的比较次数的总和为(0+1 ...
- Java排序算法之直接选择排序
Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...
- java排序算法(一):概述
java排序算法(一)概述 排序是程序开发中一种非常常见的操作,对一组任意的数据元素(活记录)经过排序操作后,就可以把它们变成一组按关键字排序的一组有序序列 对一个排序的算法来说,一般从下面三个方面来 ...
- java排序算法(八):希尔排序(shell排序)
java排序算法(八):希尔排序(shell排序) 希尔排序(缩小增量法)属于插入类排序,由shell提出,希尔排序对直接插入排序进行了简单的改进,它通过加大插入排序中元素之间的间隔,并在这些有间隔的 ...
- Java排序算法之快速排序
Java排序算法之快速排序 快速排序(Quicksort)是对冒泡排序的一种改进. 快速排序由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分 ...
- Java排序算法(三)
Java排序算法(三) 三.Java排序算法总结 从这三组时间复杂度对比中,可以看出,堆排序和归并排序是不管在什么情况下发挥稳定的,快速排序好的时候表现如天才,坏情况下比较差强人意,甚至在等待排序个数 ...
- Java排序算法(二)
java排序算法(二) 二.改进排序算法 2.1希尔排序 定义:希尔排序(ShellSort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法. ...
随机推荐
- ORACLE数据泵使用详解
来源于:http://blog.sina.com.cn/s/blog_490a0c990100wh4y.html http://blog.csdn.net/jojo52013145/article/d ...
- CSS选择器优先级排列
CSS选择器的效率从高到低做了一个排序: 1.id选择器(#myid) 2.类选择器(.myclassname) 3.标签选择器(div,h1,p) 4.相邻选择器(h1+p) 5.子选择器(ul & ...
- java 时间操作
设置获取时间日期格式 // 设置日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // 为 ...
- Jenkins_获取源码编译并启动服务(一)
一.安装Jenkins插件(可以手动安装,使用推荐安装容易卡死) 系统管理-->插件管理-->可选插件 Folders Plugin OWASP Markup Formatter Plug ...
- HTTP 405 错误 – 方法不被允许 (Method not allowed)
HTTP 协议定义一些方法,以指明为获取客户端(如您的浏览器或我们的 CheckUpDown 机器人)所指定的具体网址资源而需要在 Web 服务器上执行的动作.则这些方法如下: 介绍 OPTIONS( ...
- UITextView实现placeHolder方法汇总
UITextField中有一个placeholder属性,可以设置UITextField的占位文字,起到提示用户的作用.可是UITextView就没那么幸运了,apple没有给UITextView提供 ...
- 项目实例——多表关联查询判断A的字段是否在B中,在显示该字段值,不在显示空;B的字段是否在C中,在显示该字段值,不在显示空。
1.需求: (1)三张表A.B.C 三个表id相同,如果A表中的name在B表中的bname中显示aname值,否则显示空:如果C表中的addr在B表中的tel显示addr,否则显示空 2.实现方式 ...
- Spark MLib 基本统计汇总 1
1. 概括统计 summary statistics MLlib支持RDD[Vector]列式的概括统计,它通过调用 Statistics 的 colStats方法实现. colStats返回一个 ...
- matlab实现hog特征
%%matlab实现hog特征 %修改自http://www.cnblogs.com/tiandsp/archive/2013/05/24/3097503.html %input: img %outp ...
- jquery插件-表单验证插件-rules
ruels方法 1说明:查看.新增.移除一个表单控件的验证规则 2使用: 表单控件.rules(); 参数: rules() 返回元素的验证规则 rules('add',rules) 增加验证规则 r ...