![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
zy19982004
这个作者很懒,什么都没留下…
展开
-
数据结构与算法学习
标记原创 2012-11-03 11:09:39 · 68 阅读 · 0 评论 -
数据结构与算法学习一:冒泡排序
一.排序方法将被排列的数组data[0...n]垂直排列,每个元素data[i]看作是一个气泡,气泡的重量就是data[i]的值。从最下面一个气泡data[n]开始扫描,比较其与上一个气泡data[n-1]的重量,data[n] < data[n-1]则交换;然后比较data[n-1]与data[n-1-1]...一轮下来,最轻的气泡跑到了最上面data[0]的位置。重复2过程...2012-11-04 11:06:53 · 74 阅读 · 0 评论 -
数据结构与算法学习二:直接选择排序
一.排序方法被排列的数组data[0...n],选定当前位置i=0作为最小值下标position;在data[i+1...n]区间每个元素与data[position]比较,记录新position,最后交换data[i]和data[position]。这样最小的元素就到了当前位置了。当前位置i+1,重复1... 二.动画演示 http://student.zjz...2012-11-04 17:00:08 · 95 阅读 · 0 评论 -
数据结构与算法学习三:直接插入排序
一.排序方法 基本思想:被排列的数组data[0...n]。初始时,data[0]自成1个有序区,无序区为data[1..n];从i=1起直至i=n为止,依次将data[i]插入当前的有序区data[0..i-1]中,生成含n个记录的有序区。将待插入元素data[i]从右向左依次与有序区中记录data[j](j=i-1,i-2,…,0)进行比较。若data[j]大于dat...2012-11-06 16:53:43 · 130 阅读 · 0 评论 -
数据结构与算法学习四:希尔排序
一.排序方法先取一个小于n的整数increment作为第一个增量,把文件的全部记录分成increment个组。所有距离为increment的倍数的记录放在同一个组中。先在各组内进行直接插人排序。取第二个增量increment(小于1中的increment)重复上述的分组和排序,直至所取的增量increment=1,即所有记录放在同一组中进行直接插入排序为止。 希尔排序实质上是一种分...2012-11-06 17:53:28 · 86 阅读 · 0 评论 -
数据结构与算法学习五:快速排序
一. 排序方法快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。分治法的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。原排序数组data[0...n]。分解:在data[low..high...原创 2012-11-07 11:30:21 · 83 阅读 · 0 评论 -
数据结构与算法学习六:堆排序
一. 定义 任何关键字data[0...n]都可以组成一个完全二叉树。堆就是一种特殊的二叉树:树中任一非叶结点的关键字均大于等于(或小于等于)其左右孩子(若存在)结点的关键字。大于等于称为大根堆;小于等于称为小根堆。 二. 排序方法(以大根堆为例) 先将初始文件data[1..n]建成一个大根堆,此堆为初始的无序区。将关键字最大的记录data[0](即堆顶...原创 2012-11-07 22:50:33 · 127 阅读 · 0 评论 -
数据结构与算法学习七:归并排序
一. 排序方法归并排序(Merge Sort)是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。给定数组data[0...n],若data[0...m]和data[m+1...n]两个子数组均已经有序。可以先将两个子数组合并到一个临时数组tmpAr[0...n]里面。然后将tmpAr复制到原data数组里面。合并过程合并过程中,设置i,j...2012-11-08 22:03:45 · 85 阅读 · 0 评论