一,冒泡排序 时间复杂度:O(n2) 稳定性:稳定 冒泡排序我就不多讲了,大体上就是比较相邻的两个数,每次把较大的数沉底。流程图大致上如下: 图是截得别人的,只是说明一下,代码没有参看别人的,写的不好,有更好的写法可以一起探讨。下面是代码: 这里添加了新的解法(2019.6.25): 二,选择排序 ...
分类:
编程语言 时间:
2019-06-27 23:00:50
阅读次数:
167
c++ 求逆序对 例如数组(3,1,4,5,2)的逆序对有(3,1)(3,2)(4,2)(5,2)共4个 逆序对就是左边的元素比右边的大,那么左边的元素和右边的元素就能产生逆序对 代码跟归并排序差不多 代码 c include using namespace std; int a[100]; int ...
分类:
编程语言 时间:
2019-06-27 21:51:51
阅读次数:
176
一、reduce函数 本函数释义: (1)原意是归并,缩减 (2)把一个可迭代的对象最后归并成一个结果 (3)对于作为参数的函数要求:必须由两个参数,必须返回一个结果 释义:我们递归的对列表进行加和,1+2=3,3+3=6,6+4=10,10+5=15,15+6=21,通过定义一个规则(也就是这里面 ...
分类:
编程语言 时间:
2019-06-26 00:55:46
阅读次数:
134
统计逆序对的两种解法 归并排序(mergeSort) 逆序对定义 $ia[j]$,假设我们分别使得通过mergeSort使得左右半边有序 即$a[1]...a[mid]$ 递增, $a[mid+1]....a[n]$递增,我们需要通过merge操作,完成整个的排序和新增逆序对的计数,较小值出现在左半 ...
分类:
其他好文 时间:
2019-06-24 19:43:16
阅读次数:
119
#include #include #define N 500+10 using namespace std; int a[N],s[N],n; void gb(int l,int r){ if(l==r)return; int m=(l+r)/2,tot=l-1,i=l,j=m+1; gb(l,m... ...
分类:
编程语言 时间:
2019-06-22 21:21:00
阅读次数:
143
快排: Parition函数用于进行一次快排,本次快排将某个元素放在它应该呆在的位置pos。pos左侧全比它小,pos右侧全比它大。 Parition中,设置low指针与high指针,以待排元素为标杆,判断high指向元素是否大于待排元素,若小于则与low指向的元素交换,并切换到low指针。low指 ...
分类:
编程语言 时间:
2019-06-21 12:31:33
阅读次数:
118
package MergeSort; import ShellSort.ShellSort; import chooseSort.Example; /** * 归并排序 * 归并的含义:将两个有序的数组合并成一个有序数组 * 思想:通过递归的方法,将数组不断地分割,直到数组里只有一个元素时返回。 *... ...
分类:
编程语言 时间:
2019-06-20 15:39:27
阅读次数:
135
刷 June 19 2019 这个题居然也没记过,可能当时觉得太简单了。 楞做法 然后另一种是通过nums[r] nums[l] == r l 来迅速完成l r 缺点是在[1,3,5,7,9,11]这种每次R都要从最右边到最左边,反而变成O(n2)了 其实可以二分,类似于归并排序的办法,缺点是mer ...
分类:
其他好文 时间:
2019-06-20 13:04:23
阅读次数:
76
冒泡排序 function bubble_sort($arr) { } 归并排序 二分查找-递归 function bin_search($arr,$low,$high,$value) { } 二分查找-非递归 function bin_search($arr,$low,$high,$value) ...
分类:
编程语言 时间:
2019-06-17 01:01:20
阅读次数:
104
shuffle读过程源码分析 上一篇中,我们分析了shuffle在map阶段的写过程。简单回顾一下,主要是将ShuffleMapTask计算的结果数据在内存中按照分区和key进行排序,过程中由于内存限制会溢写出多个磁盘文件,最后会对所有的文件和内存中剩余的数据进行归并排序并溢写到一个文件中,同时会记 ...
分类:
其他好文 时间:
2019-06-16 20:11:09
阅读次数:
133