arr

二维数组

前提是你 提交于 2020-01-11 05:42:32
二维数组 其实二维数组其实就是一个元素为一维数组的数组。 动态初始化方式一(指定有多少个长度相同的一维数组) 数据类型[][] 变量名 = new 数据类型[m][n]; m表示这个二维数组有多少个一维数组 n表示每一个一维数组的元素个数 动态初始化方式二(指定二维数组中有多少个一维数组,每一个一维数组的长度不固定) 数据类型[][] 变量名 = new 数据类型[m][]; 注意: m这个数据必须给出,后面的数据可以不给,如arr[2][0]); 求:定义一个有3个一维数组的二维数组 1.给这个二维数组的每一个一维数组的元素赋值 仅可用此种方式: arr[0] = new int[2]; arr[0][0] = 1; arr[0][1] = 2; 不能用此种方式: arr[0] = {1,2}; arr[1] = {5,6,7}; arr[2] = {4}; 二维数组的静态初始化: 静态初始化: 数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}}; 简化格式: 数据类型[][] 变量名 = {{元素…},{元素…},{元素…}}; int [ ] [ ] arr2 = { { 1 , 2 } , { 3 , 4 , 5 } , { 6 , 7 , 8 , 9 } } ; 二维数组的遍历: public class TwoDemo {

数组去重主要的5种方法,

倖福魔咒の 提交于 2020-01-11 04:13:34
数组去重的方法 一、利用ES6 Set去重(ES6中最常用) var arr = [1,1,8,8,12,12,15,15,16,16]; function unique (arr) { return Array.from(new Set(arr)) } console.log(unique(arr)) //[1,8,12,15,16] 不考虑兼容性,这种去重的方法代码最少。这种方法还无法去掉“{}”空对象,后面的高阶方法会添加去掉重复“{}”的方法。 二、利用for嵌套for,然后splice去重(ES5中最常用) var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16]; function unlink(arr) { for (var i = 0; i < arr.length; i++) { // 首次遍历数组 for (var j = i + 1; j < arr.length; j++) { // 再次遍历数组 if (arr[i] == arr[j]) { // 判断连个值是否相等 arr.splice(j, 1); // 相等删除后者 j--; } } } return arr } console.log(unlink(arr)); //NaN和{}没有去重,两个null直接消失了 双层循环,外层循环元素,内层循环时比较值。值相同时

基本排序算法--希尔排序随笔

喜你入骨 提交于 2020-01-11 02:39:24
基本思想 将整个序列按照相距某个“增量”进行拆分,然后逐个对子序列进行直接插入排序,使得得到的结果基本有序,最后对基本有序的序列进行一次直接插入排序,使得整个序列有序。 代码实现: /** * 希尔排序,间隔比较大的时候,排序次数比较少; * 间隔比较小的时候,移动距离比较短;由于跳着排,所以它不稳定 * * 首先给定一个间隔,按间隔选取元素,将选取好的元素排好序,如: * 【a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15】 * 【a0, a4, a8, a12】【a1, a5, a9, a13】【a2, a6, a10, a14】【a3, a7, a11, a15】 * * 然后将间隔按规则减小,在按间隔选取元素,重新排序号选取的元素, * 【a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15】 * 【a0, a2,a4, a6, a8, a10, a12, a14】【a1, a3, a5, a7, a9, a11, a13, a15】 * * 直到间隔为1,在按间隔选取元素并排序 * 【a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13,

个人作业3 二维数组

好久不见. 提交于 2020-01-10 23:55:37
格式: 数组的行数, 数组的列数, 每一行的元素, 每一个数字都是有符号32位整数,行数和列数都是正整数。 package shuzu; public class shuzuu{ public static void main(String[] args) { int matrix[][]={{1,-2,3},{-4,5,6},{-7,8,-9}}; maxSum(matrix); } public static void maxSum(int matrix[][]) { if(matrix==null||matrix.length==0) return; int max=0; int col=matrix[0].length,row=matrix.length; for(int i=0;i<row;i++) { int arr[]=new int[col]; for(int j=i;j<row;j++) { for(int k=0;k<col;k++) { arr[k]+=matrix[j][k]; } for(int l=0;l<col;l++) { System.out.print(arr[l]+" "); if((l+1)%3==0) { System.out.println(); } } max=Math.max(max(arr), max); System.out

day05_数组

こ雲淡風輕ζ 提交于 2020-01-10 23:16:20
容器概念 容器: 是将多个数据存储到一起,每个数据称为该容器的元素。 生活中的容器 :水杯,衣柜,教室 数组概念 数组: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致 数组的特点: 数组是一种引用数据类型 数组当中的多个数据,类型必须统一 数组的长度在程序运行期间不可改变 数组的初始化 在内存当中创建一个数组,并且向其中赋予一些默认值就是数组的初始化 两种常见的初始化方式: 动态初始化(指定长度): 在创建数组的时候,直接指定数组当中的数据元素个数。 静态初始化(指定内容): 在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定。 数组的定义 动态初始化数组 格式: 数据类型[] 数组名称 = new 数据类型[数组长度]; 数组定义格式详解: 数据类型: 创建的数组容器可以存储什么数据类型。 [ ] : 表示数组。 数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。 new:关键字,创建数组使用的关键字。 数据类型: 创建的数组容器可以存储什么数据类型。 [长度]:数组的长度,表示数组容器中可以存储多少个元素。 注意: 数组有定长特性,长度一旦指定,不可更改。和水杯道理相同,买了一个2升的水杯,总容量就是2升,不能多也不能少。 举例 // 创建一个数组,里面可以存放300个int数据 int[] arrayA = new

排序算法

♀尐吖头ヾ 提交于 2020-01-10 20:52:23
第一章 冒泡排序 知识点-- 冒泡排序 3.讲解 3.1冒泡排序概述 一种排序的方式,每轮比较都从第一个元素(索引为0的元素),相邻的2个元素进行比较,只要前面元素比后面元素大就交换,依次对所有的数据进行操作,直至所有数据按要求完成排序 如果有n个数据进行排序,总共需要比较n-1轮 每一轮比较完毕,下一轮的比较就会少一个数据参与 3.2冒泡排序图解 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z7UFMFQj-1578491896997)(img/5.png)] 3.3冒泡排序代码实现 /* 冒泡排序: 一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面, 依次对所有的数据进行操作,直至所有数据按要求完成排序 */ public class ArrayDemo { public static void main ( String [ ] args ) { //定义一个数组 int [ ] arr = { 7 , 6 , 5 , 4 , 3 } ; System . out . println ( "排序前:" + Arrays . toString ( arr ) ) ; // 这里减1,是控制每轮比较的次数 for ( int x = 0 ; x < arr . length - 1 ; x ++ ) { //

常见的排序算法整理

隐身守侯 提交于 2020-01-10 20:35:50
插入排序:稳定 时间复杂度:最坏情况 O(n^2) 最好 O(n) 平均 O(n^2) 空间复杂度:O(1) 1 public void insertSort(int[] arr){ 2 int n = arr.length; 3 for(int i =1;i<n;i++) 4 { 5 int value = arr[i]; 6 int j; 7 for(j= i; j>0 && value < arr[j-1];j--) 8 { 9 arr[j] = arr[j-1]; 10 } 11 arr[j] = value; 12 } 13 } 冒泡排序:稳定 时间复杂度:最坏情况 O(n^2) 最好 O(n) 平均 O(n^2) 空间复杂度:O(1) 1 public void bubbleSort(int[] arr){ 2 int n = arr.length; 3 for (int i=0;i<n;i++){ 4 for (int j=0;j<n-i-1;j++){ 5 if(arr[j]>arr[j+1]){ 6 int t = arr[j+1]; 7 arr[j+1] = arr[j]; 8 arr[j] = t; 9 } 10 } 11 } 12 } 希尔排序:不稳定 时间复杂度:最坏情况 O(n^2) 最好 O(n) 平均 O(n^1.3) 空间复杂度:O(1)

排序算法

馋奶兔 提交于 2020-01-10 20:12:23
第一章 冒泡排序 知识点-- 冒泡排序 3.讲解 3.1冒泡排序概述 一种排序的方式,每轮比较都从第一个元素(索引为0的元素),相邻的2个元素进行比较,只要前面元素比后面元素大就交换,依次对所有的数据进行操作,直至所有数据按要求完成排序 如果有n个数据进行排序,总共需要比较n-1轮 每一轮比较完毕,下一轮的比较就会少一个数据参与 3.2冒泡排序图解 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z7UFMFQj-1578491896997)(img/5.png)] 3.3冒泡排序代码实现 /* 冒泡排序: 一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面, 依次对所有的数据进行操作,直至所有数据按要求完成排序 */ public class ArrayDemo { public static void main ( String [ ] args ) { //定义一个数组 int [ ] arr = { 7 , 6 , 5 , 4 , 3 } ; System . out . println ( "排序前:" + Arrays . toString ( arr ) ) ; // 这里减1,是控制每轮比较的次数 for ( int x = 0 ; x < arr . length - 1 ; x ++ ) { //

数组初始

岁酱吖の 提交于 2020-01-10 16:26:14
空数组 $arr=array(); var_dump($arr); gettype():得到变量的类型 echo gettype($arr);//array(0) {} 通过is_array():检测变量是否为数组 var_dump(is_array($arr));//arraybool(true) 如果数组下标重复,后面的覆盖前面的值 $arr=array( 'a', 0=>'b' ); var_dump($arr); //array(1) { //[0]=> // string(1) "b" //} 如果新添加元素没有指定下标,它的下标为已有下标最大值加1(已有下标不全为负数) $arr=array( 'a','b','c', 5=>'d', 19=>'e', 'f' ); //var_dump($arr); //array(6) { // [0]=> // string(1) "a" // [1]=> // string(1) "b" // [2]=> // string(1) "c" // [5]=> // string(1) "d" // [19]=> // string(1) "e" // [20]=> // string(1) "f" //} 如果已有下标都为负数,那么新添加元素的下标从0开始 $arr=array( -12=>'a', -43=>'b', 'c' )

排序算法

爷,独闯天下 提交于 2020-01-10 14:19:49
第一章 冒泡排序 知识点-- 冒泡排序 3.讲解 3.1冒泡排序概述 一种排序的方式,每轮比较都从第一个元素(索引为0的元素),相邻的2个元素进行比较,只要前面元素比后面元素大就交换,依次对所有的数据进行操作,直至所有数据按要求完成排序 如果有n个数据进行排序,总共需要比较n-1轮 每一轮比较完毕,下一轮的比较就会少一个数据参与 3.2冒泡排序图解 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z7UFMFQj-1578491896997)(img/5.png)] 3.3冒泡排序代码实现 /* 冒泡排序: 一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面, 依次对所有的数据进行操作,直至所有数据按要求完成排序 */ public class ArrayDemo { public static void main ( String [ ] args ) { //定义一个数组 int [ ] arr = { 7 , 6 , 5 , 4 , 3 } ; System . out . println ( "排序前:" + Arrays . toString ( arr ) ) ; // 这里减1,是控制每轮比较的次数 for ( int x = 0 ; x < arr . length - 1 ; x ++ ) { //