Java 用两种方法实现插入排序
来源:互联网 发布:知联会是什么组织 编辑:程序博客网 时间:2024/06/04 20:35
一、概述:
排序算法是最简单的算法,也是最基本的算法。顾名思义,插入排序就是把当前待排序的元素插入到一个已经排好序的列表里面。 一个非常形象的例子就是右手抓取一张扑克牌,并把它插入左手拿着的排好序的扑克里面。插入排序的最坏运行时间是O(n2), 所以并不是最优的排序算法。特点是简单,不需要额外的存储空间,在元素少的时候工作得好。
二、示例图:
三、代码实现
/** * @描述 数组排序 * @项目名称 Java_DataStruct * @包名 com.struct.array * @类名 ArraySort * @author chenlin * @date 2010年6月22日 下午8:28:46 */public class InsertSort { /** * 相邻的两个值对比 * * @param arr */ public static void insertSort1(long[] arr) { long temp = 0; for (int i = 1; i < arr.length - 1; i++) { temp = arr[i]; int j = i; while (j > 0 && arr[j] >= temp) { // 把大的值往后移动 arr[j] = arr[j - 1]; j--; } // 当j--时,把temp值移动到小值的位置 arr[j] = temp; } list(arr); } /** * 相邻的两个值对比 * * @param arr */ public static void insertSort2(long[] arr) { if (arr == null || arr.length < 2) { throw new RuntimeException("数组输入有错误!"); } long temp = 0; for (int i = 1; i < arr.length - 1; i++) { temp = arr[i]; int j; for (j = i - 1; j >= 0; j--) { if (arr[j] >= temp) { arr[j + 1] = arr[j]; }else { break; } } // 当j--时,把temp值移动到小值的位置 arr[j+1] = temp; } list(arr); } public static void list(long[] arr) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(""); } public static void main(String[] args) { long arr[] = { 22, 33, 44, 11, 23, 43, 54, 0, 98 }; insertSort2(arr); }}
0 0
- Java 用两种方法实现插入排序
- Java程序实现冒泡排序、直接排序、插入排序方法
- java插入排序方法
- java实现插入排序
- java实现插入排序
- java实现插入排序
- 插入排序---java实现
- Java实现插入排序
- 插入排序 Java实现
- 插入排序(Java实现)
- java实现插入排序
- java实现插入排序
- Java实现插入排序
- 插入排序-Java实现
- Java 实现 插入排序
- java实现插入排序
- JAVA实现插入排序
- JAVA实现插入排序
- Codeforces Beta Round #14 (Div. 2) D. Two Paths
- spring mvc 传中文 到controller层乱码的 解决方法
- C++设计模式系列之二结构型模式
- Android Studio中获取sha1证书指纹
- svn服务器搭建流程
- Java 用两种方法实现插入排序
- phpcms制作静态手机移动站
- Servlet开发(四)Response对象、Request对象的请求重定向、请求转发
- Mac系统mds、mds_stores、mdworker疯狂工作的问题
- JavaScript基础
- 代码触发表格编辑事件
- SpringIOC容器
- ssh整合是Caused by: java.io.FileNotFoundException: class path resource [bean/test/User.hbm.xml] cannot
- 24个小诀窍让你的工作更有效率