随笔分类 -  一起学习数据结构

二叉树与AVL树
摘要:二叉树 什么是二叉树? 父节点至多只有两个子树的树形结构成为二叉树。如下图所示,图1不是二叉树,图2是一棵二叉树。 图1 普通的树 图2 二叉树 如果一棵树所有的非叶子节点都有两个子节点,则称该树为完全二叉树,图2就是一棵完全二叉树。 二叉查找树(ADT) 二叉树一个重要的应用是二差查找树,顾名思义 阅读全文

posted @ 2016-02-21 13:47 学会分享~ 阅读(3224) 评论(0) 推荐(0)

排序系算法——线性排序
摘要:概述: 阅读全文

posted @ 2016-02-20 12:55 学会分享~ 阅读(297) 评论(0) 推荐(0)

排序系列算法——希尔排序
摘要:希尔排序可以说是插入排序的加强版,通过对原始数据进行分组再排序,更高效地完成对数据的排序工作。1.从插入排序到希尔排序回顾插入排序的基本知识,插入排序通过不断将无序的元素插入到已排序的序列中,直到所有的元素都已经插入位置。插入排序一个很明显的缺点是插入元素时需要与已经排序的元素进行对比,对比的次数可... 阅读全文

posted @ 2016-01-22 16:24 学会分享~ 阅读(6534) 评论(0) 推荐(0)

排序系列算法——归并排序
摘要:归并排序是采用分治策略进行排序的一种算法,其基本原理是将未排序的数组划分为两个子数组,分别对两个子数组尽心排序,然后将有序的子数组合并。归并排序分为两个过程:一是数组划分为两个子数组并分别进行排序,二是将两个已排序的子数组进行合并。将数组划分为两个子数组并进行排序 将数组一分为二很简单,关... 阅读全文

posted @ 2016-01-19 20:47 学会分享~ 阅读(731) 评论(0) 推荐(0)

排序系列算法——堆排序
摘要:堆:大根堆与小根堆 堆排序是建立在堆基础上的排序方法,首先了解一下什么是堆。 常用的堆一般有两种,大根堆和小根堆。堆可以看做是一棵二叉树,其父节点的值总是大于(大根堆)或者小于(小根堆)子节点的值。举一个例子: 图1 不满足堆的条件 图2大根堆... 阅读全文

posted @ 2016-01-18 20:25 学会分享~ 阅读(9346) 评论(0) 推荐(1)

排序系列算法——快速排序
摘要:快速排序快速排序描述快速排序之所以能实现“快速”,是因为采用了分治的策略,分而治之,往往是比线性扫描更加优异的思想。快速排序可以描述如下:从要进行排序的序列中找一个元素作为基准的元素V,通过与其他元素进行对比,找到该基准元素所处的位置,然后以该位置为基准将序列分成两个子序列并重复上述的操作。如:对序... 阅读全文

posted @ 2015-12-20 18:04 学会分享~ 阅读(1264) 评论(0) 推荐(1)

排序系列算法——冒泡排序
摘要:冒泡排序什么是冒泡排序如果大家平常有观察水泡浮出水面的情况就可以发现水泡由下网上冒的过程中水泡是逐渐增大的,当水泡上升到即将浮出水面的时候往往是水泡最大的时候,如下图所示。冒泡排序的原理跟这个情况很类似,让子序列中的最大元素不断沉底,达到排序的目的。说白了,冒泡排序一共经过N-1次遍历,其中第i次遍... 阅读全文

posted @ 2015-12-20 11:10 学会分享~ 阅读(4999) 评论(0) 推荐(0)

排序系列算法——插入排序
摘要:1.原理插入排序是基本的排序算法之一,其基本原理是将无序的元素不断插入到已排序的序列中,直到所有的元素已全部插入为止。如下图所示:刚开始,已排序的序列是空的,一步一步从未排序的序列中将数据插入到已排序的序列中,已排序的序列长度不断增加,为排序的序列长度不断减小,最终完成全序列排序时,未排序的序列为空... 阅读全文

posted @ 2015-12-19 16:56 学会分享~ 阅读(576) 评论(0) 推荐(0)

导航