arr

数据结构(二)之线性表(顺序表示)

别说谁变了你拦得住时间么 提交于 2020-01-16 05:30:48
线性结构的特点: 存在唯一的一个被称作“第一个”的数据元素 存在唯一 的一个被称作“最后一个”的数据元素 除了第一个外,集合中每个数据元素均只有一个前驱; 除最后一个元素外,集合中每个数据元素均只有一个后继; 线性表的类型定义: 线性表是常用且最简单的一种数据结构.简言之,一个线性表示n个数据元素的有限序列.至于每个数据元素的具体含义,在不同情况下各不相同,他可以是一个数或一个符号,也可以是一页书,甚至是其他更复杂的信息.例如26个英文字母的字母表。 (A,B,C,…Z) 是一个线性表. 在稍复杂的线性表中,一个数据元素可以由若干个 数据项 组成,在这种情况下,常把数据元素称为记录,含有大量记录的线性表又称为 文件 . 例如:一个学校的学生信息,他由姓名,学号,性别,年龄,班级等5个数据项组成 姓名 学号 性别 年龄 班级 王林 201600001 男 12 软一 陈红 201600002 女 11 软一 爱钱进 201600003 男 13 计一 下面的一条信息成为记录(数据元素)而列名为5个数据项 姓名(数据项) 学号(数据项) 性别(数据项) 年龄(数据项) 班级(数据项) 王林 201600001 男 12 软一 当表里面没有数据我们称为空表 简单实现线性表顺序表示(采用数组) package main . com . cs . abstractDataType ;

Hackerrank-Arrays-Array Manipulation-Maximum value in an array after m range increment operations

允我心安 提交于 2020-01-16 04:50:14
给你一个长度为N的列表,列表的初始值全是0。对此列表,你要进行M次查询,输出列表种最终N个值的最大值。对每次查询,给你的是3个整数——a,b和k,你要对列表中从位置a到位置b范围内的(包含a和b)的全部元素加上k。 输入格式 第一行包含两个整数 N 和 M 。 接下来 M行,每行包含3个整数 a , b 和 k 。 列表中的数位置编号为从 1 到 N 。 输出格式 单独的一行包含 最终列表里的最大值 约束条件 3 <= N <= 10^7 1 <= M <= 2*10^5 1 <= a <= b <= N 0 <= k <= 10^9 输入样例 #00: 5 3 1 2 100 2 5 100 3 4 100 输出样例 #00: 200 两种方法: 1. A naive method is to perform each operation on given range and then at last find the maximum number. 2. Efficient method : Perform two things in a single operation: a- Add k-value to only lower_bound-1 of a range. b- Reduce upper_bound index by k-value (注意upper bound

JavaScript基本语法

守給你的承諾、 提交于 2020-01-16 04:11:40
1.javascript输出 JavaScript语句向浏览器发出的命令。语句的作用是告诉浏览器该做什么。 <script> document.write("hello world!"); </script> 插入,输出。 document.getElementById("pid").innerHTML="jikexueyuan.com"; 2.分号 语句之间的分割是分号(;) 注意:分号是可选项,有时候看到不以分号隔开的。 3.JavaScript代码: 按照编写顺序依次执行 4.标识符: JavaScript标识符必须以字母、下划线或美元符号开始 JavaScript关键字 5.JavaScript对大小写敏感 JavaScript同样对大小写很敏感。 6.空格 JavaScript会忽略掉多余的空格 7.代码换行 不可以在单词之间换行 8.保留字 注释 单行注释 // 多行注释 /**/ JavaScript变量 变量是用来储存信息的“容器” var x=10; var y=10.1; var z="hello"; <script> var i=10; var j=10; var m=i+j; document.write(m); </script> JavaScript数据类型 1.字符串(String) 2.数字(Number) 3.布尔(Boolean) 4.数组

js数组扁平化之简单方法实现

杀马特。学长 韩版系。学妹 提交于 2020-01-16 03:02:03
扁平化 一句话解释,数组扁平化是指将一个多维数组(含嵌套)变为一维数组 扁平化之es5 toString const arr = [1, 2, 3, [4, 5, [6, 7]]]; const flatten = arr.toString().split(','); console.log(flatten); 优点:简单,方便,对原数据没有影响 缺点:最好数组元素全是数字或字符,不会跳过空位 join const arr = [1, 2, 3, [4, 5, [6, 7]]]; const flatten = arr.join(',').split(','); console.log(flatten); 优点和缺点同toString 扁平化之es6 flat const arr = [1, 2, 3, [4, 5, [6, 7]]]; const flatten = arr.flat(Infinity); console.log(flatten); 优点:会跳过空位,返回新数组,不会修改原数组。 缺点:无 扩展运算符(…) const arr = [1, 2, 3, [4, 5]]; console.log([].concat(...arr)); 优点:简单,方便 缺点:只能扁平化一层 总结 推荐使用es6的flat方法 来源: CSDN 作者: 和歌山 链接: https:/

数据结构——基数排序(算法)

末鹿安然 提交于 2020-01-16 01:53:59
基数排序(桶排序)介绍: 基数排序(radix sort)属于“分配式排序”,又称桶子法,它是通过键值的各个位的值,将要排序的元素分配到某些“桶”中,达到排序的作用 基数排序法是属于稳定性排序,基数排序法是效率高的稳定性排序法。 基数排序是桶排序的扩展。 基数排序是1887年赫尔曼·何乐礼发明的,它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较。 基本思想: 将所有待比较数值统一为同样数位长度,数位较短的数前面补0,然后从最低位开始,依次进行依次排序,这样从最低位排序一直到最高位排序完成以后,数列就变成了一个有序序列。 原理图 原理代码示例 private static void radixSort ( int [ ] array ) { /*定义一个二维数组,表示10个桶,每个桶是一位数组*/ /*说明: * 1、二维数组包含10个以为数组 * 2、为了防止在放入数据的时候,数据溢出,则每个一位数组(桶),大小定义为array.length * 3、基数排序是使用空间换时间的经典算法*/ int [ ] [ ] bucket = new int [ 10 ] [ array . length ] ; /*为了记录每个桶中,实际存放了多少个数据,定义一个一维数组记录每个桶中的数组个数 * eg:bucketElementsCount[0]

js数组方法

半腔热情 提交于 2020-01-15 20:40:34
1、array.from :方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。 Array.prototype.slice.call(arguments);数组的slice方法可以将“类似数组的对象”变成真正的数组 伪数组(函数的arguments对象,大多数 DOM 元素集,字符串) 这个东西就是把一些集合,或者长的像数组的伪数组转换成真的数组,比如arguments,js选择器找到dom集合,还有对象模拟的数组 返回的是一个数组 将一个类数组对象转换为一个真正的数组,必须具备以下条件: 1)该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。 2)该类数组对象的属性名必须为数值型或字符串型的数字   ps: 该类数组对象的属性名可以加引号,也可以不加引号 Array.from还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。 let arr = [12,45,97,9797,564,134,45642] let set = new Set(arr) console.log(Array.from(set, item => item + 1)) // [ 13, 46, 98, 9798, 565, 135, 45643 ] 将字符串转换为数组: let

2019春第六周作业

与世无争的帅哥 提交于 2020-01-15 09:02:35
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-20 我在这个课程的目标是 能基本了解指针的定义与运用 这个作业在那个具体方面帮助我实现目标 本次作业有需要运用指针来返回多个数值 参考文献 C语言程序设计 求两数平方根之和 函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。 函数接口定义: double fun (double *a, double *b); 其中 a .和 b . 是用户传入的参数。函数求 a .指针和 b .指针所指的两个数的平方根之和,并返回和。 裁判测试程序样例: #include<stdio.h> #include <math.h> double fun (double *a, double *b); int main ( ) { double a, b, y; scanf ("%lf%lf", &a, &b ); y=fun(&a, &b); printf ("y=%.2f\n", y ); return 0; } /* 请在这里填写答案 */ 输入样例: 12 20 输出样例: y=7.94 实验代码 double fun (double *a,

Java 快速排序

时光毁灭记忆、已成空白 提交于 2020-01-15 01:37:21
/** * @author wkk * @date 2020/1/9 11:09 */ public class MyTestQuickSort { public static void main ( String [ ] args ) { int [ ] arr = { 213 , 499 , 1 , 53 , 56 , 3 , 4 , 89 , 0 , 388 , 45 , 34 } ; quickSort ( arr , 0 , arr . length - 1 ) ; System . out . println ( Arrays . toString ( arr ) ) ; } private static void quickSort ( int [ ] arr , int min , int max ) { if ( min == max || min > max ) { return ; } int index = partition ( arr , min , max ) ; quickSort ( arr , min , index ) ; quickSort ( arr , index + 1 , max ) ; } /** * 分割数组 * <p> * 核心内容 */ private static int partition ( int [ ] arr ,

Javascript 翻转数组

断了今生、忘了曾经 提交于 2020-01-14 19:28:28
//翻转数组内的值 //定义一个获取倒叙的函数 function getFanzhuan(arr) { //判断格式,是否是Array类型,如果是true则去翻转 if(arr instanceof Array){//定义一个新newarr数组 var newarr=[]; //循环多少次 for(var i=arr.length-1;i>=0;i--){ //交换,最后一个放到最前面 newarr[newarr.length]=arr[i] } return newarr;//返回新的数组 } //不是数组格式,则打印错误 else{ console.log('传入参数格式不是数组,请检查') } } //传入参数,调用方法 console.log(getFanzhuan((4,6,9,11))); 来源: https://www.cnblogs.com/fanqiusha1988/p/12193484.html

[JNI]Accessing Arrays

别说谁变了你拦得住时间么 提交于 2020-01-14 18:01:24
分两种情况: (1)基本元素数组 (2)对象数组 (1)基本元素数组 (i)拷贝基本元素数组: JNIEXPORT jint JNICALL Java_IntArray_sumArray(JNIEnv *env, jobject obj, jintArray arr) { jint buf[10]; jint i, sum = 0; (*env)->GetIntArrayRegion(env, arr, 0, 10, buf); //arr-->buf for (i = 0; i < 10; i++) { sum += buf[i]; } return sum; } GetIntArrayRegion的第三个参数0表示arr的起始索引,第四个参数10表示要拷贝的元素个数. (ii)获取基本元素数组的指针: GetIntArrayElements/ReleaseIntArrayElements JNIEXPORT jint JNICALL Java_IntArray_sumArray(JNIEnv *env, jobject obj, jintArray arr) { jint *carr; jint i, sum = 0; carr = (*env)->GetIntArrayElements(env, arr, NULL); if (carr == NULL) { return 0