2018年4月1日

数据结构与算法——快速排序算法

摘要: 算法描述 快速排序是基于分治的思想,是冒泡排序的改进型。首先在数组中选择一个基准点(该基准点的选取可能会影响快速排序算法的效率),然后分别从数组的两端扫描数组。设两个指示标志(low指向起始位置,high指向末尾位置),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换low和high位置的 阅读全文

posted @ 2018-04-01 19:05 Joyce&wang 阅读(1092) 评论(0) 推荐(0)

数据结构与算法——归并排序算法

摘要: 算法描述 归并排序就是利用归并的 思想实现的排序方法。它的基本原理:对于给定的一组记录,利用递归与分治方法将数据序列划分成为越来越少的半子表,在半子表排序,最后再用递归方法将排好序的半子表合并成越来越大的有序序列。 代码实现: 归并排序的复杂度分析 一趟归并需要将数组arr中相邻的长度为h的有序序列 阅读全文

posted @ 2018-04-01 16:59 Joyce&wang 阅读(268) 评论(0) 推荐(0)

数据结构与算法——堆排序算法

摘要: 算法描述 堆排序就是利用堆(假设利用大顶堆)进行排序的方法。它的基本思想是,将待排序的序列构造成一个大顶堆。此时,整个序列的最大值就是堆顶的根结点。将它移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值),然后将剩余的n-1个序列重新构造成一个堆,这样就会得到n个元素中的次小值。如此反 阅读全文

posted @ 2018-04-01 15:46 Joyce&wang 阅读(233) 评论(0) 推荐(0)

数据结构与算法——希尔排序算法

摘要: 算法描述 希尔排序算法也称为“缩小增量排序”,其基本思想是将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个待排序列“基本有序”后,最后再对所有元素进行一次直接插入排序。因此,我们要采用跳跃分割的策略,将相距某个“增量”的记录组成一个子序 阅读全文

posted @ 2018-04-01 11:26 Joyce&wang 阅读(221) 评论(0) 推荐(0)

数据结构与算法——直接插入排序

摘要: 算法描述: 直接插入排序算法:插入表示将一个新的数据插入到一个已经排好序的有序数表中,并继续保持有序。例如有一个长度为n的无序数组,进行n-1次的插入就能完成排序。第一次,数组第1个数认为是有序的数组,将数组第2个元素插入仅有1个有序的数组中。第2次,数组前两个元素组成有序的数组,将数组第3个元素插 阅读全文

posted @ 2018-04-01 00:21 Joyce&wang 阅读(1462) 评论(0) 推荐(0)

导航