算法
文章平均质量分 62
北凉123
这个作者很懒,什么都没留下…
展开
-
二分查找的算法思想和实现过程
1.二分查找:又称为 折半查找,二分查找,适合对已经排序好的数据集合进行查找,时间复杂度O(log2n),效率高。假设有一升序的数据集合,先找出升序集合中最中间的元素,将数据集合划分为两个子集,将最中间的元素和关键字key进行比较,,如果等于key则返回,如果大于关键字key,则在前一个数据集合中查找,否则在后一个子集中查找,直到找到为止,如果没找到则返回-1;2.算法步骤描述:(1)原创 2016-06-24 15:22:37 · 18888 阅读 · 2 评论 -
希尔排序算法思想及实现过程
1.希尔排序算法一般指希尔排序(Shell Sort),也称缩小增量排序。希尔排序法(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。2.希尔排序:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,原创 2016-06-24 21:55:12 · 1078 阅读 · 0 评论 -
堆排序的思想以及实现过程(链式存储)
堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆实际上是一种完全二叉树,堆分为大根堆和小根堆。双亲比左右子女大的叫做大根堆,即k[i]>=k[2i],k[i]>=k[2i+1].双亲比左右子女小的叫做小根堆,即k[i]2.堆排序思想: (1)创建一个完全二叉树. (2)调整成大根堆(小根堆)。 (3)将堆顶元素与堆底元素进行交换,并砍掉原创 2016-06-20 22:12:55 · 1458 阅读 · 0 评论 -
直接插入排序的算法思想和实现过程
直接插入类排序:假设有数据集合A。有序区间:A【0】,无序区间A【1】....A【8】,每次将无序区间的第一个元素取出与有序区间的元素进行比较,将无序区间的第一个元素放到有序区间的合适的位置。//直接插入排序算法void InsertionSort(int a[],int n){ int i,j;//i遍历有序区间,j遍历无序区间 int x;原创 2016-06-21 23:20:00 · 1019 阅读 · 0 评论 -
直接选择类排序算法思想和实现过程
直接选择类排序:算法思想:假设有数据集合,无序区间A【0】...A【8】,从无序区间中每次取出一个最大值(最小值),放到有序区间中,无序区间的长度减1;算法实现过程://直接选择类排序void SelectedSort(int a[],int n){ int i,j; int kmin,t; for(i=0;i {原创 2016-06-21 23:48:55 · 312 阅读 · 0 评论