![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分查找及排序
baobao小野菊
这个作者很懒,什么都没留下…
展开
-
旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.原创 2016-05-24 23:18:49 · 253 阅读 · 0 评论 -
计数排序
计数排序//获取数组中最大值size_t GetMaxNum(int* arr, int len){ assert(arr && len > 0); int i = 0; int maxNum = arr[i++]; for (; i<len; ++i) { if (maxNum < arr[i]) { maxNum = arr[i]; } }原创 2016-10-05 12:10:04 · 411 阅读 · 0 评论 -
归并排序
归并排序原创 2016-10-05 12:04:39 · 267 阅读 · 0 评论 -
堆排序
题目:堆排序原创 2016-05-31 23:31:33 · 331 阅读 · 0 评论 -
快速排序
快速排序快速排序接近二分查找;时间效率为O(NlogN)-O(N2);原创 2016-06-17 20:07:54 · 572 阅读 · 0 评论 -
冒泡排序
冒泡排序思路:每遍历一次数组,往上冒一个数字,不断地缩小范围,知道所有的数字都排序完;时间效率O(N2);初学C语言版本#include void sort(int a[], int len){ int i, j, tmp; for (i = 0; i<len - 1; i++) { for (j = 0; j<len - i - 1; j++) {原创 2016-06-10 17:35:42 · 311 阅读 · 1 评论 -
选择排序
选择排序#includevoid sort(int a[],int len){ int i,j,k; for(i=0;i<len-1;i++) { k=i; for(j=i+1;j<len;j++) { if(a[k]<a[j]) { k=j; } } if(k!=i) { int tmp=a[i]; a[i]=a[k];原创 2015-04-20 21:58:18 · 388 阅读 · 0 评论 -
直接插入排序
直接插入排序与希尔排序希尔排序是直接插入排序的优化直接插入排序思路:将一个数插入一个有序集合;最好时间效率O(N),最坏时间效率O(N2);希尔排序思路:先进行预排序(与插入排序思路相同,就是gap开始大于1),预排序完将小值放在了前面,大值放在了后面;当gap=1时,进行插入排序;此时的插入排序就接近O(N);代码如下:#includeusing n原创 2016-06-07 16:39:21 · 340 阅读 · 0 评论