白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
摘要:分类: 白话经典算法系列 2011-08-09 11:15 16682人阅读 评论(29) 收藏 举报 算法面试c直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素...
阅读全文
posted @
2015-05-12 21:59
小飞虫子
阅读(177)
推荐(0)
白话经典算法系列之三 希尔排序的实现
摘要:分类: 白话经典算法系列 2011-08-08 11:41 47406人阅读 评论(46) 收藏 举报 算法shell优化c希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量...
阅读全文
posted @
2015-05-12 21:58
小飞虫子
阅读(173)
推荐(0)
白话经典算法系列之二 直接插入排序的三种实现
摘要:分类: 白话经典算法系列 2011-08-06 19:27 52070人阅读 评论(58) 收藏 举报 算法直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。设数组为a[0…n-1]。...
阅读全文
posted @
2015-05-12 21:57
小飞虫子
阅读(161)
推荐(0)
白话经典算法系列之一 冒泡排序的三种实现
摘要:分类: 白话经典算法系列 2011-08-06 19:20 93923人阅读 评论(72) 收藏 举报 算法优化冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行...
阅读全文
posted @
2015-05-12 21:56
小飞虫子
阅读(146)
推荐(0)
白话经典算法系列之五 归并排序的实现
摘要:归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个...
阅读全文
posted @
2015-05-12 21:07
小飞虫子
阅读(232)
推荐(0)
白话经典算法系列之六 快速排序 快速搞定
摘要:微软快速排序-快速搞定算法腾讯面试快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采 用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考 试如软考,考研中也常常出现快速排序的...
阅读全文
posted @
2015-05-12 20:16
小飞虫子
阅读(179)
推荐(0)
白话经典算法系列之七 堆与堆排序
摘要:堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都...
阅读全文
posted @
2015-05-12 19:42
小飞虫子
阅读(221)
推荐(0)