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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 晚上冻着了呕吐怎么办 2岁宝宝一直吐怎么办 两岁宝宝门牙龋齿怎么办 两岁宝宝得龋齿怎么办 两岁宝宝长龋齿怎么办 宝宝2岁不吃饭怎么办 两岁宝宝总是吐怎么办 3岁儿童受凉呕吐怎么办 两岁宝宝四天没拉大便怎么办 两岁宝宝发烧吐怎么办 四岁宝宝吐了怎么办啊 3岁宝宝突然吐了怎么办 宝宝撑着了吐拉怎么办 2岁宝宝体温37.5怎么办 宝宝2岁乳牙烂了怎么办 孕40周还没入盆怎么办 孕妇脸上长斑了怎么办 七个月宝宝大便干怎么办 两月大婴儿不拉大便怎么办 周岁宝宝大便出血了怎么办 十一个月宝宝大便干燥怎么办 8个月宝宝大便干燥怎么办 7个月宝宝大便干燥怎么办 11个月宝宝大便干燥怎么办 9个月宝宝大便干燥怎么办 10个月宝宝大便干燥怎么办 宝宝两天没拉粑粑了怎么办 小学闺蜜嫉妒我怎么办 三年级孩子对应用题理解很差怎么办 我嫉妒我的朋友怎么办 嫉妒同学比我好怎么办 宝宝生在家里了怎么办 在家不小心生了怎么办 葫芦干了有黑点怎么办 单位费用发票丢失了怎么办 1岁宝宝太调皮了怎么办 孩子和同学打架家长该怎么办 孩子被大人打了怎么办 小孩不跟大人沟通怎么办 2岁小朋友爱动手怎么办 小班爱动手的小朋友怎么办