摘要: //分析:非递减排序数组 前面一部分 挪到后面,则形成了 两个非递减排序的数组,//而:最小的元素一定出现在 第二个非递减排序的数组中//所以这个题:我们要找出 两个非递减的边界,当 end - start == 1时,条件中指,end就是找到的元素//(1)我们用两个指针,第一个指针,指向 第一个 阅读全文
posted @ 2018-04-01 21:38 jiguojing 阅读(105) 评论(0) 推荐(0) 编辑
摘要: (1)选择一个数字 pivot,将数组分成两个数组 a,b。 a <= pivot, b > pivot (2)不停地递归,直到每个数组中只有一个数字,此时数组达到有序 疑问:怎么选择 基准:pivot (1)固定位置:开头 或 中间 或 结尾 (2)随机位置 (3)开头 + 中间 + 结尾 数字的 阅读全文
posted @ 2018-04-01 16:36 jiguojing 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 1.冒泡排序 (1)每次比较相邻的两个元素,按照对应的顺序进行交换 (2)遍历的次数是 n 次,每次遍历进行的比较次数 是 n次,所以复杂度 n*n (3)进行优化:如果某一次比较之后,没有一次交换,说明此时数组已经有序了 2.插入排序 (1)不停地将 数字插入到 前面已经有序的数组中 3.选择排序 阅读全文
posted @ 2018-04-01 14:27 jiguojing 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1.归并排序的思想 分治 (1)对数组进行不断拆分,直到每个数组里面只有 1个元素 (2)1个元素的数组,进行合并,变成两个元素的有序数组,两个合并变成4个元素的有序数组 2.归并排序的关键在于:合并数组,掌握每次合并的数组边界 3.废话不多说,直接上代码 此方法是合并数组从前往后合并 3.2 此方 阅读全文
posted @ 2018-04-01 09:48 jiguojing 阅读(377) 评论(0) 推荐(0) 编辑