排序算法
文章平均质量分 87
Kavin_Liang
Stay hungry. Stay foolish
展开
-
排序算法之冒泡、插入和希尔排序
简单排序算法冒泡排序冒泡排序算法是一种很简单的排序算法,它重复的访问要排序的数列,比较两个相邻的元素,如果这个两个元素不是出于正确的位置及左边的元素比右边大,则交换这两个元素的位置(从小到大排序)。一直重复这个过程直到所有的元素都是有序的。 例如:对{5 1 4 2 8}进行从小到大进行排序。 第一遍 ( 5 1 4 2 8 ) →\to ( 1 5 4 2 8 ), 首先, 冒泡算原创 2015-11-10 10:28:54 · 642 阅读 · 0 评论 -
堆排序
堆排序堆排序是建立在数据结构堆上的一种操作。堆排序最简单的一种操作就是,先建立一个堆,然后依次弹出堆中的元素,使用临时数组保存。最后在把临时数组赋值给原数组。(对堆操作不熟悉的请先看数据结构之堆) 其代码为: 由于需要建一个堆,因此产生额外的空间,那么是否可以直接在元素组上建立一个堆呢? 答案是肯定的。因此,堆排序另外一个优化版本 1. 将要排序的数组arr从0到i(开始时i = arr.le原创 2015-11-14 12:06:44 · 379 阅读 · 0 评论 -
归并排序与快速排序
分治法分治法的思想:将原问题分解为几个规模较小但类似原问题的子问题,递归的求解这些子问题,然后合并这些子问题的解来建立原问题的解。及分而治之分治模式在每层递归时都有三个步骤: 分解原问题为若干子问题,这些子问题是原问题规模较小的实例 解决这些子问题,递归地求解各子问题。然而,若子问题的规模足够小,则直接求解。 合并这些子问题的解成原问题的解。归并排序归并排序算法完全遵循分治模式。只管上其操作如原创 2015-11-19 10:12:24 · 1871 阅读 · 1 评论