
数据结构与算法
文章平均质量分 59
dog_in_yellow
这个作者很懒,什么都没留下…
展开
-
二分查找
二分查找法是算法课必讲的查找算法之一,它的理论学计算机的都知道。离开学校多年,很多东西都忘光了,如今重新复习算法,顺便整理整理,也作为学习的笔记。//在数组data中查找值为key的元素,找到返回下标(zero based),否则返回-1templatetypename T>int binsrch(T *data, unsigned len, T key );templatetypena原创 2007-05-01 16:44:00 · 878 阅读 · 0 评论 -
直接插入排序法
直接插入排序法是一种简单的排序方法,它的基本思想就是把一个元素按升序或降序插入已经有序的一个序列里面,插入后保持序列的有序。假设有序列data[1..n],则将data[2]插入data[1..1]中,将data[3]插入data[1..2]中,将data[4]插入data[1..3]中。如此经过n-1次的插入,便可以使data[1..n]有序。一次直接插入排序的算法如下:t原创 2007-05-03 16:08:00 · 2777 阅读 · 0 评论 -
选择排序算法
选择排序的算法是,对一个数据序列data[m..n],选择出一个最小的和data[m]交换。这样经过n-1次选择,数据序列将会变成有序。即第一次从data[1..n]选择一个最小的,放到data[1]这个位置,第二次从data[2..n]选择出一个最小的,放到data[2]这个位置,这样重复到第n-1次,从data[n-1..n]选择出一个最小的,放到data[n-1]这个位置。这样数据就原创 2008-01-13 10:15:00 · 535 阅读 · 0 评论 -
冒泡排序算法
冒泡排序算法也是一种简单的排序算法。它的基本思想是把相邻的元素两两比较,把大的往下层,比较完一趟后,就可以把最大的元素层到最下面。之后再对其它元素进行重复操作,直至全部有序。例如有一个序列data[1..n],把data[1]和data[2]比较,如果data[1]比较大,就交换位置,再把data[2]和data[3]比较,如果data[2]比较大,就交换位置,这样比较到data[n-1原创 2008-01-13 10:16:00 · 587 阅读 · 0 评论 -
快速排序算法
快速排序算法是对冒泡排序算法的改进。它的基本思想是,通过一趟排序将序列分成两部分,其中一部分记录均比另一部分记录的值小。再分别对这两部分序列继续快速排序,以达到整个序列的有序。 在具体实现方法上是对序列data[s..t],以data[s]作为枢纽重新排列,把比data[s]大的都放到它前面,比data[s]小的都放到它后面,经过重新排列后s的位置也产生了变化,假设变为i(s原创 2008-01-13 10:14:00 · 547 阅读 · 0 评论