#include using namespace std; void margearray(int a[], int s, int e) { int tmp[e-s+1], k = 0, mid = (s+e)/2; int i = s, j = mid+1; int m = mid, n=e; w... ...
分类:
编程语言 时间:
2018-07-21 00:48:26
阅读次数:
174
分治算法:把一个任务,分成形式和原任务相同,但规模更小的几个部分任务(通常是两个部分),分别完成,或只需要选一部完成。然后再处理完成后的这一个或几个部分的结果,实现整个任务的完成。 分治的典型应用:归并排序、快速排序 归并排序动态图: 快速排序: ...
分类:
编程语言 时间:
2018-07-19 22:30:48
阅读次数:
175
在写顶部导航栏的时候,需要将两个div并排,这时候需要用到floa属性,如图所示 1 <div style="background: #a0c;height: 40px;float: left;">div1</div> 2 <div style="background: #ccc;height: 3 ...
分类:
Web程序 时间:
2018-07-18 00:36:56
阅读次数:
159
快速排序的思想 同归并排序一样,快速排序也是将要排序的数组一分为二,但是与快速排序不同的是,归并排序不考虑任何条件直接将数组一分为二,之后再利用归并过程排序,而快速排序首先从将要排序的数组中选择一个元素,以这个元素为基准,如图所示 这里是选择的数组首元素4,然后把4挪到它在排好序的数组中应该在的位置 ...
分类:
编程语言 时间:
2018-07-16 21:07:48
阅读次数:
261
摘要: 所谓排序,就是根据排序码的递增或者递减顺序把数据元素依次排列起来,使一组任意排列的元素变为一组按其排序码线性有序的元素。本文将介绍八种最为经典常用的内部排序算法的基本思想与实现,包括插入排序(直接插入排序,希尔排序)、选择排序(直接选择排序,堆排序)、交换排序(冒泡排序,快速排序)、归并排序 ...
分类:
编程语言 时间:
2018-07-15 21:13:45
阅读次数:
210
考虑固定l,每次查找符合的r,每次倍增长度p,用归并排序将后面的可行的部分归并进去,时间复杂度O(nlogn),不用读入挂就T了 1 /* *********************************************** 2 Author :BPM136 3 Created Time ...
分类:
编程语言 时间:
2018-07-15 19:50:11
阅读次数:
466
function merge(left_arr,right_arr){ let tem = []; while(left_arr.length&&right_arr.length){ if(left_arr[0] < right_arr[0]){ tem.push(left_arr.shift()) ...
分类:
编程语言 时间:
2018-07-15 11:18:37
阅读次数:
119
上一篇中写了选择排序和插入排序,都是O(N^2)级别的,这篇将要实现的归并排序和快速排序都是O(Nlog(N))级别的。 归并排序 思路;首先将要排序的数组分成两部分,left_part,right_part,之后将排好序的left_right和right_part归并起来,同原始数组一样,被分成的 ...
分类:
编程语言 时间:
2018-07-14 22:41:03
阅读次数:
236
https://blog.csdn.net/yuehailin/article/details/68961304 ...
分类:
编程语言 时间:
2018-07-14 16:49:00
阅读次数:
143
一、排序的基本概念 假设含有n个记录的序列为{r1,r2,...,rn},其相应的关键字分别为{k1,k2,...,kn},需确定1,2,...,n的一种排列p1,p2,...,pn,使其相应的关键字满足kp1≤kp2≤...≤kpn非递减(或非递增)关系,及时地序列称为一个按关键字有序的序列{rp ...
分类:
编程语言 时间:
2018-07-11 18:03:24
阅读次数:
150