精妙的数据结构
作为一名计算机工程师,数据结构的重要性不容小视。本专栏在强调数据结构重要性的前提下,尽量通过精炼、准确的语言分析数据结构的原理,并通过Java实现重要的结构算法,在实现过程中也有意去寻找新的实现思路并对相似目的的算法进行总结比较。
会飞的鱼_Li
生活只属于自己的感受!
展开
-
Java实现“队列”结构
1.队列 说到队列首先给我们的第一印象就是“先进先出”,这一点与栈是完全相反的。当然,对于双端对列除外,因为其可以指定任意一端进行数据的删除和插入。其次在队列中的删除和插入是采用环绕式处理的方式进行的,即通过头标记head_sign和尾标记rear_sign的移动来实现的,具体过程可以通过下边的图进行理解。2.队列结构实现public class Queue{ //record the...原创 2018-06-07 16:20:59 · 2785 阅读 · 0 评论 -
Java实现"栈"结构
一提到栈首先映入我们脑海的一个词就是“后进先出”(即其为单通道,只能有一个出口),显然这是栈最明显且重要的特点。栈的内部实现可以使用数组或链表来完成。------------------------1.栈的解析栈之所有容易被理解是因为其包含的方法非常简单,主要包括以下三个方法:push()——一次只能向栈中压如一个数据,先入栈的数据在最下边。pop()——每次只能弹出栈顶数据,也就是一...原创 2018-06-05 09:12:11 · 6997 阅读 · 1 评论 -
Java俩种形式实现插入排序法
排序的重要性使得大家总是走在寻找新方法的路上,冒泡排序->选择排序->插入排序三种方法见证了这一过程,这三种简单排序在实际应用中的使用率也是比较大的,当然也是我们学习高级排序的一个基础。------------------------什么是插入排序—— 通过名字就能很好的理解,插入就是将要排序的元素插入到应该被放置的位置。而这里的插入有一个前提,也是插入排序的一个特征,那就...原创 2018-06-03 10:46:38 · 225 阅读 · 0 评论 -
Java实现选择排序及与冒泡排序的比较
已有的排序方法往往不能很好的满足在实际开发中的所有需求,因此需要不断探索去发现更高效的方法。------------------------为什么要出现选择排序? 前面论述了冒泡排序的思想,并通过Java进行了代码实现。我们知道在冒泡排序中,我们需要从左向右依次进行俩俩比较,且每一次比较都有需要进行交换的可能性,所以若不够幸运,一次排序将交换接近N*N次。要知道一点,交换的过程是要在内存...原创 2018-05-26 22:05:38 · 547 阅读 · 0 评论 -
Java俩种形式实现冒泡排序
数据排序的重要性在实际项目开发中的重要性不言而喻,无论是数据整理还是分析都离不开排序这道工序。-------------------------------------冒泡排序—— 是一种比较简单的排序方法,也是在数据结构课程中我们学习到的第一种排序方法。但是冒泡排序在简单排序中属于时间复杂度较高的方法,用大O表示法为O(N*N)。可是虽然如此,这种排序的思想仍然需要我们去很好的掌握,而...原创 2018-05-25 21:59:52 · 741 阅读 · 1 评论 -
Java实现数据结构——数组
数组是一种比较简单的数据结构,而且在大多数高级程序设计语言中都实现了数组。一、无序数组利用面向过程的思想创建数组,实现数组元素的插入、查找和删除工作:public class Box{ public static void main(String[] args){ //create a array long[] arr=new long[50]; //record index ...原创 2018-04-30 21:13:00 · 307 阅读 · 0 评论 -
数据结构的魅力折服了我
有些家伙注定让人又爱又恨! 数据结构也许在大多数计算机专业的人眼中并不陌生,不知道其他人在最初接触它时是什么感觉,我确实是被它给难倒了,从此数据结构成为了我计算机学习之路上的一个阴影。记得大二一开始,对C语言还是一知半解的我,忽然开的这门课更是让自己抓狂——那是完全听不懂啊(感觉就是在听天书),当时的老师也没有和我们说这个数据结构到底可以干什么,有什么用,于是乎就晕头转向的上完...原创 2018-04-27 17:34:14 · 510 阅读 · 0 评论