last

归并排序

好久不见. 提交于 2020-01-23 21:46:48
思路 归并排序就是先将要排序的元素打半拆分,拆至一个元素时,再使用二路合并的方法将元素重新合并回来。 如图所示: 特点 归并排序具有稳定的特点,并且时间的复杂度比一些其他的排序时间用的少一点,它的时间复杂度是O(n log n) 。 代码如下: #include"stdio.h" int a[10010],b[10010]; void merge(int a[],int begin,int mid,int last) { int i,j,k; k=i=begin; j=mid; while(i<mid&&j<last)//二路合并 { if(a[i]<a[j])b[k++]=a[i++]; else b[k++]=a[j++]; } while(i<mid)//如果有剩下的直接往后装 { b[k++]=a[i++]; } while(j<last) { b[k++]=a[j++]; } for(k=begin;k<last;k++)a[k]=b[k]; } void mergesort(int a[],int begin,int last) { if(begin==last-1)return ;//如果只剩一个值就返回 int mid=(begin+last)/2; mergesort(a,begin,mid);//打半 mergesort(a,mid,last); merge(a

何时选用CSS何时选用DOM?

限于喜欢 提交于 2020-01-23 18:47:47
用DOM方法设置样式十分灵活,可以动态创建标记,设置内嵌.style样式(驼峰命名)或者说直接改变一个class属性。而CSS样式丰富多彩,引入许多选择器first-child, last-child,nth-child(),nth-of-type()等等,也有伪类选择器属性 描述a:link a:visited a:hover a:active等等。那么什么时候用CSS设置样式,什么时候用DOM修改样式呢?在这个问题上没有放之四海皆准的答案。 毫无疑问,CSS用来设置网页样式,大多时候我们都用CSS设置去创建重要样式,而用DOM去对文档做一些增强。 那么什么时候去选用DOM方法修改而不是CSS呢?下面我们将从一些适应范围来分析这个问题: 1.根据元素在节点树中的位置来设置样式 我们来看这样一组标记: < h1 > What is the Document Subject Model? </ h1 > < p > The < abbr title = " World Wide Web Consortium " > W3C </ abbr > defines the < abbr title = " Document Object Model " > DOM </ abbr > as: </ p > < p > A platfrom- and language-neutral

jQuery系列:选择器

北城以北 提交于 2020-01-23 04:44:12
  jQuery选择器通过标签名、属性名或内容对DOM元素进行选择,而不用担心浏览器的兼容性。 1. 基本选择器   基本选择器是jQuery中使用最频繁的选择器,由元素ID、class、元素名、多个选择符组成,通过基本选择器可以实现大多数页面元素的查找。 选择器 功能 返回值 示例 * 匹配所有元素 元素集合 $("*") #id 根据指定的ID匹配一个元素,示例选取id="loading"的元素 单个元素 $("#loading") .class 根据指定的类名称匹配元素,示例选取class="readonly"的元素 元素集合 $(".readonly") .class.class 根据指定的类名称匹配元素,示例选取class="item selected"的元素 元素集合 $(".item.selected") element 根据指定的元素名匹配所有元素 元素集合 $("div") selector1,selector2,...selectorN 将每一个选择匹配到的元素合并后一起返回 元素集合 $("div,span")    示例: <ul class="container"> <li>选项1</li> <li class="item selected">选项2</li> <li>选项3</li> <li>选项4</li> <li>选项5</li> </ul>

Jmeter获取当前时间、历史时间、未来时间的方式

心已入冬 提交于 2020-01-22 23:43:28
__time : 获取时间戳、格式化时间 操作步骤: 1、通过函数助手,生成一个_time 函数: 2、如果参数为时间戳,那公式为: ${__time(,)} : 默认该公式精确到毫秒级别, 13位数 ${__time(/1000,)} : 该公式精确到秒级别, 10位数 3、 如果参数需要为当前日期,那公式为: ${__time(yyyy-MM-dd,)} ${__time(YMDHMS,)} 4、执行结果为: __TimeShift(格式,日期,移位,语言环境,变量):可对日期进行移位加减操作     格式 - 将显示创建日期的格式。如果该值未被传递,则以毫秒为单位创建日期。   日期 - 这是日期值。用于如果要通过添加或减去特定天数,小时或分钟来创建特定日期的情况。如果参数值未通过,则使用当前日期。   移位 - 表示要从日期参数的值中添加或减去多少天,几小时或几分钟。如果该值未被传递,则不会将任何值减去或添加到日期参数的值中。     “P1DT2H4M5S” 解析为“添加1天2小时4分钟5秒”     “P-6H3M”解析为“-6小时+3分钟”     “-P6H3M”解析为“-6小时-3分钟”     “-P-6H + 3M”解析为“+6小时和-3分钟”   区域设置 - 设置创建日期的显示语言。不是必填项   变量 - 创建日期的值将被分配给的变量的名称。不是必填项

归并排序算法(C#实现)

为君一笑 提交于 2020-01-22 20:09:05
归并排序(Merge Sort)是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。归并排序有两种方式:1): 自底向上的方法 2): 自顶向下的方法 1、 自底向上的方法 (1) 自底向上的基本思想 自底向上的基本思想是:第1趟归并排序时,将待排序的文件R[1..n]看作是n个长度为1的有序子文件,将这些子文件两两归并,若n为偶数,则得到n/2个长度为2的有序子文件;若n为奇数,则最后一个子文件轮空(不参与归并)。故本趟归并完成后,前n/2 - 1个有序子文件长度为2,但最后一个子文件长度仍为1;第2趟归并则是将第1趟归并所得到的n/2个有序的子文件两两归并,如此反复,直到最后得到一个长度为n的有序文件为止。 上述的每次归并操作,均是将两个有序的子文件合并成一个有序的子文件,故称其为"二路归并排序"。类似地有k(k>2)路归并排序。 2、自顶向下的方法(本文主要介绍此种方法,下面的文字都是对此种方法的解读) (1) 自顶向下的基本思想 采用分治法进行自顶向下的算法设计,形式更为简洁。 自顶向下的归并排序:是利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列,归并排序包括两个步骤,分别为: 1)划分子表 2)合并半子表 (1)分治法的三个步骤 设归并排序的当前区间是R

最大和子数组

这一生的挚爱 提交于 2020-01-22 12:25:42
编程之美2.14, 2.15节。这个问题在编程珠玑中的算法章有很深入的分析。 可以试解下题: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=448 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=44 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=1768 下面为求maximum sum on torus的代码: template<class It>typename iterator_traits<It>::value_typemaxsum(It first, It last) { typedef typename iterator_traits<It>::value_type value_type; value_type maxsofar, maxatend; maxsofar =

每周一个 Python 标准库 | unittest

自作多情 提交于 2020-01-22 03:41:04
技术博客: https://github.com/yongxinz/tech-blog 同时,也欢迎关注我的微信公众号 AlwaysBeta ,更多精彩内容等你来。 unittest 是 Python 自带的单元测试框架,可以用来作自动化测试框架的用例组织执行。 优点:提供用例组织与执行方法;提供比较方法;提供丰富的日志、清晰的报告。 unittest 核心工作原理 unittest 中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner。 下面我们分别来解释这四个概念的意思,先来看一张 unittest 的静态类图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i73bqGc5-1579601045102)(D:\work\article\unittest.png)] 一个 TestCase 的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。 而多个测试用例集合在一起,就是 TestSuite,而且 TestSuite 也可以嵌套 TestSuite。

c——线性表

[亡魂溺海] 提交于 2020-01-22 01:46:47
线性表 定义:同一类型的数据元素构成的有序序列的线性结构 数组实现 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define MAXSIZE 80 4 typedef int ElementType; 5 6 typedef struct LNode { 7 ElementType Data[MAXSIZE]; 8 int Last; 9 }*List; 10 11 //创建新线性表 12 List MakeEmpty() { 13 List L; 14 L = (List)malloc(sizeof(struct LNode)); 15 L->Last=-1; 16 return L; 17 } 18 //输出所有元素 19 void Print(List L) { 20 int i; 21 if(L->Last==-1) { 22 printf("空表"); 23 return; 24 } 25 for(i=0;i<=L->Last;i++) { 26 printf("%d ",L->Data[i]); 27 } 28 } 29 //查找元素 30 int Find(ElementType X,List PtrL) { 31 int i = 0; 32 while(i<=PtrL->Last && PtrL->Data[i]!=X)

【leetcode】155. 最小栈( Min Stack )

别说谁变了你拦得住时间么 提交于 2020-01-21 17:52:36
题目描述 【leetcode】155. 最小栈( Min Stack ) 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 第一次解答 思路: 弄一个单链表,top永远指向单链表起始 添加元素在单链表头部添加 为了实现常量检索最小值,每个单链表元素额外附带一个元素min min存储了该元素添加后,此时stack内的最小值 class cMyLink { public : cMyLink * next ; int val ; int min_val ; cMyLink ( int x ) { next = nullptr ; val = x ; } private : cMyLink ( ) { } } ; class MinStack { public : cMyLink * p_top ; /** initialize your data structure here. */ MinStack ( ) { p_top = nullptr ; } void push ( int x ) { cMyLink * p_top_last = p_top ; p_top = new cMyLink ( x

三门问题

末鹿安然 提交于 2020-01-20 21:10:48
三门问题 文章目录 三门问题 问题介绍 起源 描述 问题 错误的理解 应该改选 不应该改选 实验 问题建模 环境 选手 策略 流程 实验结果 思考 破局关键 附录 问题介绍 起源 三门问题(Monty Hall problem)亦称为蒙提霍尔问题、蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let’s Make a Deal。问题名字来自该节目的主持人蒙提·霍尔(Monty Hall)。 描述 参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,另外两扇门后面则各藏有一只山羊。选中后面有车的那扇门可赢得该汽车。当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门中的一扇,露出其中的山羊。随后,主持人会问参赛者要不要改选另一扇仍然关上的门。 问题 改变选择是否会增加参赛者赢得汽车的机率? 错误的理解 这个问题之所以迷人,是因为无论回答会或者不会的人,往往都给出了错误的解释,下面列出了两种常见的错误解释。 应该改选 理由是, 第一次三选一,主持人排除一扇门后变为二选一,所以应该改选。 这种观点也就认为,改选后选中的概率为 1 2 \frac{1}{2} 2 1 ​ . 不应该改选 理由是, 在主持人排除一扇门后,情况已经变成二选一,此时无论是否改选,选中的概率都自动提升为 1 2 \frac{1}{2} 2 1 ​ . 这种观点认为,无论是否改选,选中的概率都为