码迷,mamicode.com
首页 > 编程语言 > 详细

【数据结构】——排序算法——1.1、直接插入排序

时间:2015-03-20 12:55:22      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:面试   插入排序   java   数据结构   

插入算法很多,无论是在内功修炼,各种笔试面试都是相当有用的。接下来,将陆续将各种排序算法进行练习:


主要分为以下几个部分(其他后面学习补充):

一、插入类排序:1、直接插入排序;2、折半插入排序;3、希尔shell排序;

二、交换类排序:1、冒泡排序 ;2、快速排序;

三、选择类排序:1、简单选择; 2、堆排序;


本人多使用Java——开始吧!

首先推荐1、维基百科《排序算法》词条,图文并茂,很形象!2、学习博文《维基百科上的算法和数据结构链接很强大》,资料很多,保存学习!


【数据结构】——排序算法——1.1、直接插入排序

一、先上维基的图:

技术分享技术分享

图一、插入排序例子

分类 排序算法
数据结构 数组
最差时间复杂度 技术分享
最优时间复杂度 技术分享
平均时间复杂度 技术分享
最差空间复杂度 总共技术分享 ,需要辅助空间技术分享

二、描述
很简单,类似打扑克牌时按从小到大排。每次派牌的人发一张,就拿上来整理一下。拿起新派的牌,第一件事,便是看牌的大小,然后从手里整理好的牌按从大到小(或者从小到大)的方向查询。当找到一个位置同时满足一边大于等于新牌、而另外一边小于等于新牌,那就将新牌插入这个位置。重复,最后牌就排好序了!

三、Java程序

public class Insertion {  
    public static void insertionSort(Comparable []data) {  
        for(int index = 1; index < data.length; index++) {  
            Comparable key = data[index];  
            int position = index;  
            //shift larger values to the right  
            while (position > 0 && data[position - 1].compareTo(key) > 0) {  
                data[position] = data[position - 1];  
                position--;  
            }  
            data[position] = key;  
        }     
    }  
    public static void main(String []args) {  
        Comparable []c = {4, 9, 23, 1, 45, 27, 5, 2};  
        insertionSort(c);  
        for(int i = 0; i < c.length; i++)  
            System.out.println("插入排序:" + c[i]);  
    }  
}













【数据结构】——排序算法——1.1、直接插入排序

标签:面试   插入排序   java   数据结构   

原文地址:http://blog.csdn.net/waycaiqi/article/details/44489511

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!