- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 二分查找的思想及实现
1.二分查找:又称为 折半查找,二分查找,适合对已经排序好的数据集合进行查找,时间复杂度O(log2n),效率高。假设有一升序的数据集合,先找出升序集合中最中间的元素,将数据集合划分为两个子集,将最中间的元素和关键字key进行比较,,如果等于key则返回,如果大于关键字key,则在前一个数据集合中查找,否则在后一个子集中查找,直到找到为止,如果没找到则返回-1;2.算法步骤描述:(1)首先确定整个查找区间的中间位置mid=(low+high)/2;(2)用待查关键字值与中间位置关键字值进行比较;若
2020-11-28 12:58:52 1713
原创 希尔排序算法思想及实现过程
1.希尔排序算法一般指希尔排序(Shell Sort),也称缩小增量排序。希尔排序法(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。2.希尔排序:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的增量的子序列,对各个子序列进行插入排序;然后再选择一个更小的增量,
2016-06-24 21:55:12 1099
原创 二分查找的算法思想和实现过程
1.二分查找:又称为 折半查找,二分查找,适合对已经排序好的数据集合进行查找,时间复杂度O(log2n),效率高。假设有一升序的数据集合,先找出升序集合中最中间的元素,将数据集合划分为两个子集,将最中间的元素和关键字key进行比较,,如果等于key则返回,如果大于关键字key,则在前一个数据集合中查找,否则在后一个子集中查找,直到找到为止,如果没找到则返回-1;2.算法步骤描述:(1)
2016-06-24 15:22:37 18937 2
原创 直接选择类排序算法思想和实现过程
直接选择类排序:算法思想:假设有数据集合,无序区间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 327
原创 直接插入排序的算法思想和实现过程
直接插入类排序:假设有数据集合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 1041
原创 堆排序的思想以及实现过程(链式存储)
堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆实际上是一种完全二叉树,堆分为大根堆和小根堆。双亲比左右子女大的叫做大根堆,即k[i]>=k[2i],k[i]>=k[2i+1].双亲比左右子女小的叫做小根堆,即k[i]2.堆排序思想: (1)创建一个完全二叉树. (2)调整成大根堆(小根堆)。 (3)将堆顶元素与堆底元素进行交换,并砍掉
2016-06-20 22:12:55 1489
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人