
基础算法
文章平均质量分 78
空空大人
这个作者很懒,什么都没留下…
展开
-
交换排序(冒泡排序、快速排序)
冒泡排序 排序过程: 设数组长度为n,按从小到大排序 1 .比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。这样对数组的第 0个数据到 n-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第 n-1个位置。排序共进行 n-1次比较; 2 .n=n-1原创 2012-10-07 20:36:52 · 865 阅读 · 0 评论 -
插入排序(直接插入排序、希尔排序)
直接插入排序 基本思想: 假设待排序的数存放在数组arr[1...n]中。初始时,arr[1]自成1个有序区,无序区为arr[2...n]。从i=2起直至i=n为止,依次将arr[i]插入当前的有序区arr[1..i-1]中,生成含n个记录的有序区。 算法复杂度: 对于具有n个记录的文件,要进行n-1次排序原创 2013-09-09 11:00:42 · 835 阅读 · 0 评论 -
归并排序
归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 1. 首先考虑将两个有序数列合并的过程: 只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。void MergeArray(int原创 2013-09-09 16:14:01 · 878 阅读 · 0 评论 -
选择排序(直接选择、堆排序)
直接选择排序 (不稳定) 排序过程: 1 、首先在所有数据中经过 n-1次比较选出最小的数,把它与第 1个数据交换, 2、然后在其余的数据内选出排序码最小的数,与第 2个数据交换...... 依次类推,直到所有数据排完为止。 在第i 趟排序中选出最小关键字的数据,需要做 n-i次比较。 复杂度原创 2013-09-09 15:27:42 · 3178 阅读 · 0 评论 -
查找算法(顺序查找、二分法查找、二叉树查找、hash查找)
查找功能是数据处理的一个基本功能。数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下。我们假定查找的数据唯一存在,数组中没有重复的数据存在。 (1)顺序查找(普通的数据查找) 设想有一个1M的数据,我们如何在里面找到我们想要的那个数据。此时数据本身没有特征,所以我们需要的那个数据可能出现在数组的各个位转载 2013-09-12 15:49:28 · 11902 阅读 · 1 评论