`
jandroid
  • 浏览: 1970110 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Thinking in Insert Sort(插入排序)

 
阅读更多

今天重新开始阅读《算法导论》,之前虽然读过一遍,但是不是非常的深入,这是一个新的开始,希望在新的一次算法旅程中,收获更多心得!

首先我想说一下我对 插入排序 的理解,我对这个算法的分析与理解,总是在大脑中结合着衣服扑克牌,在算法的步骤中,实时滴更随着每一步操作,当需要排序或者调整某些牌的位置时,我会在头脑中做出调整,然后一步一步,最终达到自已预想和算法正确结果所预想的结果。

插入排序 - fangxia722 - 东东思考

算法实施的必要条件:

1.输入:N个数(a1,a2,a3....an);

2.输出:输入序列的一个排列(重新排序):(a1',a2',a3'....an'),使得a1'<=a2'<=a3'<=.....<=an'。


算法设计实现:

insert_sort----------------------->

for j <-----2 to length[a]

{

do key <----- a[j];

i=j-1;

while( i>0 && a[i]>key)

{

do a[i+1] <-----a[i];

i =i -1;

}

a[i+1]=key;

}


之前一直在想一个问题,其实对于即时输入的排序,我们是可以对插入排序做出优化的。

因为传统的插入排序在排序过程中对元素进行移动或者重新复制,这就增加了算法的操作时间,而且复制操作会对内存做一定操作,这些操作是非常耗费资源的。

所以,我在想,我们可以用链表设计实现这个范例,当有新元素需要排序插入时,我们就申请一个Node,然后对之前排序的队列遍历比较,找到适当位置,直接插入就行。而且再输入元素的过程中就实现了排序,当最后一个元素输入后,找到合适位置即可,这事得出的队列就是排序好的对列,相对于输入完后在排序有一定优势。而且在待排序数据量不确定的情况下,此方法还是有很多好处的。

分享到:
评论

相关推荐

    Thinking in C 录音版 part3

    Bruce Eckel是著名的计算机科学作家,其Thinking In系列是深受读者欢迎的经典著作,其中Thinking In C++/Java虽经一版再版,热度始终不减。除了Thinking In C++和Thinking In Java外,Bruce Eckel在大学授课时所将的...

    Thinking in C++.pdf

    ### Thinking in C++:深入理解面向对象编程与C++特性 #### 一、书籍概述 《Thinking in C++》是一本由Bruce Eckel撰写的经典著作,被广泛认为是学习和掌握C++语言及其面向对象编程思想的重要参考资料之一。本书...

    Thinking in Java 4th Edition Annotated Solutions Guide

    根据提供的文件信息,以下是对文件《Thinking in Java 4th Edition Annotated Solutions Guide》中所包含知识点的详细解释: 首先,文件标题《Thinking in Java 4th Edition Annotated Solutions Guide》指出了这是...

    Thinking in java和Thinking in c++中文版

    《Thinking in Java》和《Thinking in C++》是两本非常经典的编程教材,由Bruce Eckel撰写,分别针对Java和C++这两种强大的编程语言。这两本书深入浅出地讲解了各自语言的核心概念和编程思想,适合初学者入门,也对...

    Thinking in java .txt

    《Thinking in Java》第四版由布鲁斯·埃克尔(Bruce Eckel)撰写,他是MindView公司的总裁。这本书被广泛认为是学习Java编程语言的经典教材之一。从读者的反馈来看,《Thinking in Java》不仅覆盖了Java的核心概念...

    Thinking in C 录音版 part1

    Bruce Eckel是著名的计算机科学作家,其Thinking In系列是深受读者欢迎的经典著作,其中Thinking In C++/Java虽经一版再版,热度始终不减。除了Thinking In C++和Thinking In Java外,Bruce Eckel在大学授课时所将的...

    Thinking in java4(中文高清版)-java的'圣经'

    研讨课 Hands-on Java研讨课CD Thinking in Objects研讨课 Thinking in Enterprise Java Thinking in Patterns(with Java) Thinking in Patterns研讨课 设计咨询与复审 附录B 资源 软件 编辑器与IDE 书籍 分析与设计...

    《大象 Thinking in UML 第2版》PDF版本下载.txt

    《大象 Thinking in UML 第2版》PDF版本下载

    Thinking in C++习题答案

    《Thinking in C++》是一本深受程序员喜爱的C++学习指南,由Bruce Eckel编写,旨在帮助读者深入理解和掌握C++编程语言。该书分为两卷,第一卷主要介绍了C++的基础知识,包括面向对象编程的基本概念,而第二卷则更...

    大象:Thinking in UML 清晰完整版pdf

    学习UML的必备书籍 潭云杰著 大象:Thinking in UML。 将面向对象的分析设计思想巧妙地融入建模过程中,通过贯穿全书的实例将软件系统开发过程中方方面面的知识有机地结合在一起,用生动的语言和精彩的事例将复杂...

    Thinking in C# Thinking in C#

    Thinking in C# Thinking in C# Thinking in C# Thinking in C#

    Thinking in Enterprise Java

    Thinking in Enterprise Java

    Thinking in Patterns中文版

    &lt;Thinking in C++&gt;&lt;Thinking in Java&gt;作者的又一力作。译得也很好,书中的代码Copy下来就可以直接运行。 这本书前一半是用JAVA语言来写的,后面一半用了多种语言合写的。 写得很通俗易懂,译得还是不错的。 Thinking...

    thinking in c++ src

    《Thinking in C++ Volume 2》是一本深受程序员喜爱的经典C++教程,由Bruce Eckel撰写,旨在深入探讨C++编程语言的高级特性和实践应用。这个压缩包包含的就是该书第二卷中的源代码示例。 C++是面向对象编程(OOP)...

    大象-Thinking in UML.pdf

    作者在《大象-Thinking in UML》这本书中,试图通过浅显易懂的方式向读者展示UML及RUP的精髓,从而帮助读者克服学习障碍,真正理解并应用UML和RUP进行软件开发。这本书被认为是可遇而不可求的作品,作者自谦地将其...

    大象 Thinking in UML 高清完整版PDF-2

    大象 Thinking in UML 高清完整版PDF

    Thinking in C++(1,2卷)

    《Thinking in C++》是Bruce Eckel所著的一套经典的C++编程教程,分为两卷。这本书深入浅出地介绍了C++语言的核心概念和技术,旨在帮助程序员从思考的角度理解和掌握C++,而不仅仅是记住语法。 卷一主要涵盖基础,...

    Thinking in C++ 随书代码

    《Thinking in C++》是一本深受C++程序员喜爱的经典教程,由Bruce Eckel撰写,旨在帮助读者深入理解和掌握C++编程语言。这本书以其全面、深入的讲解和丰富的实例著称,是许多初学者和进阶者提升C++技能的重要参考...

    Thinking in Java 4 源码 导入IDEA可直接运行

    《Thinking in Java》是Bruce Eckel的经典之作,第四版(TIJ4)更是Java程序员必读的书籍之一。这本书深入浅出地介绍了Java语言的核心概念和技术,包括面向对象编程、集合框架、多线程、网络编程等众多主题。源码是...

    Thinking in C++ 中文版(C++编程思想)

    《Thinking in C++ 中文版》是一本深入探讨C++编程思想的重要著作,它为学习者提供了全面且深入的理解C++语言的途径。C++是一种强大的、通用的、面向对象的编程语言,广泛应用于系统软件、应用软件、游戏开发、设备...

Global site tag (gtag.js) - Google Analytics