摘要: Problem:Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).Find the minimum el... 阅读全文
posted @ 2016-01-20 21:59 尾巴草 阅读(141) 评论(0) 推荐(0) 编辑
摘要: Problem:Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).You are given a tar... 阅读全文
posted @ 2016-01-20 21:25 尾巴草 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 基本的二分查找算法:针对的是已经排好序的数组。 1 #include 2 3 using namespace std; 4 5 //二分查找算法 6 7 //返回-1表示没找到。 8 int binarySearch(int a[],int n,int target) 9 {10 i... 阅读全文
posted @ 2016-01-20 20:43 尾巴草 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。void bubbleSort(int a[],int n){ for(int i=0;ia[j+1]) { i... 阅读全文
posted @ 2016-01-20 20:25 尾巴草 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 实现堆排序需要解决两个问题:1、如何将n个待排序的数建成堆2、输出堆顶元素之后。如何调整剩余n-1个元素,使其成为一个新堆使用最大堆来进行堆排序算法实现,所谓堆排序就是每次交换堆顶元素与堆中最后一个元素,然后对前面的堆中的元素从堆顶开始调整。具体代码如下: 1 #include 2 3 usin... 阅读全文
posted @ 2016-01-20 17:10 尾巴草 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1 /*简单选择排序每趟循环只能确定一个元素飘絮后的定位。我们可以考虑改进每趟循环确定两个元素(当前每趟最大和最小记录)的位置 2 *从而减少排序所需要的循环次数。改进后对n个数据进行排序,最多只需要n/2趟循环即可 3 */ 4 5 //二元选择排序 6 void BiSelectorSort... 阅读全文
posted @ 2016-01-20 15:54 尾巴草 阅读(206) 评论(0) 推荐(0) 编辑