2016年4月19日

快速排序

摘要: 思想 快速排序采用的思想是分治思想。 基准(pivot):快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot), 然后对数组进行分区操作, 使基准左边元素的值都不大于基准值, 基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。 递归快速排序,将其他n-1个元 阅读全文

posted @ 2016-04-19 19:06 skipping 阅读(152) 评论(0) 推荐(0) 编辑

归并排序求逆序对

摘要: 给定数组 如{5,8,3,1} 则有<5,3><5,1><8,3><8,1><3,1> 5个逆序对 给定数组 求其逆序对的个数 思路:归并排序 O(NlogN) 时间复杂度 O(N) 空间复杂度 如上图:在两个有序的子序列中。 arr[p] > arr[q] && p < q; 满足逆序对的条件。此 阅读全文

posted @ 2016-04-19 16:48 skipping 阅读(454) 评论(0) 推荐(0) 编辑

归并排序

摘要: 归并排序主要分为三步: 划分问题: 把序列分为元素个数尽量相等的两半; 递归求解: 把两半元素分别进行排序 合并问题: 把两个有序表合并成一个; 其中前两部分比较容易,关键是第三部分合并数组; 归并函数 1 void mergerSort(int arr[], int start, int end, 阅读全文

posted @ 2016-04-19 15:55 skipping 阅读(223) 评论(0) 推荐(0) 编辑

导航