
算法和数据结构系列
little6256
这个作者很懒,什么都没留下…
展开
-
排序算法之选择排序
直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1. 初始时,数组全为无序区为a[0..n-1]。令i=0 a[0] ... a[n-1]2. 在无序区a[i原创 2012-08-30 17:51:33 · 298 阅读 · 0 评论 -
排序算法之直接插入排序
直接插入排序(Straight Insertion Sort)的基本思想: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。设数组为a[0…n-1],其中红色区域为有序区域1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。 a[0] a[1] ... a[n-1]原创 2012-08-30 16:37:02 · 266 阅读 · 0 评论 -
排序算法之冒泡算法
冒泡排序的思想: 冒泡排序的过程中,关键字较小的记录好比水中的气泡逐趟向上漂浮,而关键字较大的记录好比石块往下沉,每一趟有一块"最大"的石头沉到水底,从而后半部分逐渐形成有序区。 设数组为a[0…n-1],红色部分为有序区。1. 初始时,数组全为无序区为a[0..n-1]。令i=n-1 a[0] ... a[n-1]2. 无序区a[原创 2012-08-30 22:10:26 · 269 阅读 · 0 评论 -
排序算法之快速排序
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-an-ConquerMethod),该排序算法在小规模数据排序中使用最为广泛,如STL中的sort算法和Java Arrays中sort方法都使用了该算法(它们考虑数据规模混合使用了不同的排序算法)。该方法的基本思想是:1.先从数列中取出一个数作为基准数。原创 2012-08-31 00:47:19 · 480 阅读 · 0 评论