
数据结构与算法
刷题
qq_35604674
这个作者很懒,什么都没留下…
展开
-
快速排序(Quick Sort)
快速排序(Quick Sort) 快速排序是利用分治法的分区交换排序。将待排数组分成两个子数组,再分别对这两个子数组递归地进行快排。该算法由C.A.R.Hoare于1962年发表在Computer Journal5第一期。 库函数 在C语言中 void qsort(void * base,size_t num,size_t size, int(* com...原创 2019-03-16 10:30:23 · 325 阅读 · 0 评论 -
归并排序(Merge Sort)
首先,归并排序中的“归并”是什么意思? 按照对应的英文merge,其实就是“合并”,“融合”。 那么,排序又为什么要融合、合并,怎么去融合、合并? 若有两个已经升序的数组,将这两个子数组合并成一个升序数组的时间复杂度是多少? 只需要两个指针分别指向两个数组的首元素,比较它们的大小,选择其中较小的数按序放进合并数组,对应指针后移,最后将一个子数组剩下的元素都放进合并数组,可见,将两个有序数组合并成一...原创 2019-03-18 13:29:10 · 543 阅读 · 0 评论 -
二分查找(Binary Search)
二分查找 二分查找是从有序数组中的中间位置开始查找特定元素的算法,又称折半查找。 算法流程: 从有序数组的中间位置开始与给定元素进行比较。 若二者相等,则返回下标。 若不相等,则在大于或小于给定元素的那一半数组中重复以上步骤。 若在某一步数组为空,表明查找失败。 每次比较,数组长度n减小一半,所以二分查找的时间复杂度为O(logn)。 1.基本二分查找 问题描述:从有序数组中查找value,存...原创 2019-03-13 19:05:29 · 178 阅读 · 0 评论