arr

七大排序算法汇总(python实现)

依然范特西╮ 提交于 2020-02-20 03:00:16
关注“python趣味爱好者”公众号,回复“排序算法”获取源代码 目前,常见的排序算法有: 冒泡排序 插入排序 选择排序 堆排序 计数排序 快速排序 本篇文章将围绕这七大算法进行介绍,我们先来学习一下整体的代码结构: class SORT ( object ) : def __init__ ( self ) : self . arr = [ 20 , 64 , 34 , 25 , 12 , 22 , 11 , 90 ] self . n = len ( self . arr ) self . num = 0 print ( self . arr ) def out_put ( self ) : print ( 50 * '-' ) print ( "最终排序结果" , self . arr ) def bubbleSort ( self ) : #冒泡排序 pass def shellSort ( self ) : #希尔排序 pass def insertionSort ( self ) : #插入排序 pass def Selectionsort ( self ) : #选择排序 pass def heapSort ( self ) : #堆排序 pass def countSort ( self ) : #计数排序 pass def quickSort ( self ) :

JavaScript<3>--数组

别说谁变了你拦得住时间么 提交于 2020-02-19 04:34:36
数组 JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。 要取得Array的长度,直接访问 length 属性: var arr = [1, 2, 3.14, 'Hello', null, true]; arr.length; // 6 请注意,直接给Array的length赋一个新的值会导致Array大小的变化: var arr = [1, 2, 3]; arr.length; // 3 arr.length = 6; arr; // arr变为[1, 2, 3, undefined, undefined, undefined] arr.length = 2; arr; // arr变为[1, 2] Array可以通过索引把对应的元素修改为新的值,因此,对Array的索引进行赋值会直接修改这个Array: var arr = ['A', 'B', 'C']; arr[1] = 99; arr; // arr现在变为['A', 99, 'C'] 请注意,如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化: var arr = [1, 2, 3]; arr[5] = 'x'; arr; // arr变为[1, 2, 3, undefined, undefined, 'x'] 大多数其他编程语言不允许直接改变数组的大小,越界访问索引会报错

JavaScript数组

核能气质少年 提交于 2020-02-19 04:34:16
JavaScript数组 一、数组是什么 所谓数组,是有序的元素序列。若将多个类型的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。是一组数据的组合,多个数据的集合。数组是一种特殊的对象。 二、数组的特点 1.数组内的数据有一些相关性的。 2.数组里的数据有一定的顺序。 3.数组里面可以放任何的数据类型,也可同时存放不同类型的数据。 4.任意数组之间都不相等,哪怕数组内的数据相同也不相等。数组是一种特殊的对象 Tip:js中任何两个对象都不相等,只要相等了,那就是同一个对象,相等于自身 三、创建数组 1.字面量方法创建 var arr = [1,2,3]; 2.构造函数创建 var arr = new Array[]; //构造函数方法创建时,若括号内只有一个数值型数据,则表示这个数组中有几个元素,值为undefined //两种方法的不同 //例: var arr1 = [5] //表示有一个数组元素5 var arr2 = new Array(5) //表示有5个数组元素,值全部为undefined 四、数组简单分类 //数值数组 var arr = [3,4,5,6]; //字符数组 var arr = ["a","b","c","d"]; //数组数组(二维数组,多维数组) var arr

JavaScript之数组

余生颓废 提交于 2020-02-19 03:19:32
  数组是用来在单独的变量名中存储数据的,你可以通过方法来操作数组,如:增加数据、删除数据等。 创建/ 访问 数组    通过指定数组名以及索引号码(数组的索引从0开始),你可以访问某个特定的元素,如arr[2]、arr[3]。 1 // 创建数组的方法有两种:1、通过new关键字创建 2、通过字面量创建 2 var arr = new Array(); // 创建一个空数组 3 arr[0] = "Hello"; // 向arr数组中添加元素 4 arr[1] = "world"; // 向arr数组中添加元素 5 6 var arr1 = new Array(3); // 创建一个数组长度的3的数组 7 arr[0] = "My"; // 向arr1数组中添加元素 8 arr[1] = "name"; // 向arr1数组中添加元素 9 arr[3] = "Lily"; // 向arr1数组中添加元素 10 11 var arr2 = new Array(1,2,3,4,5); // 创建数组[1,2,3,4,5] 12 13 var arr3 = []; // 创建一个空数组 14 var arr4 = [1,2,3]; // 创建数组[1,2,3] 15 16 console.log(arr[1]); // 返回world 17 console.log(arr4[2]);

数组方法 Array.prototype

本秂侑毒 提交于 2020-02-18 02:24:22
Object.prototype 数组的值是有序的集合,每一个值叫做元素,每一个元素在数组中都有数字位置编号,也就是索引,js中数组是弱类型的,数组中可以含有不同类型的元素。数组元素甚至可以是对象或者其他数组 长度范围:1====2的23方-1 new Array(100)//undifind*100 arr[5]=10; arr.length//6 push() unshift() shift() pop() var Arr=[1,true,undifind,{x:1},[1,2,3]]; Array.prototype Array.prototype.join() 默认, 可以自定义-------将数组转换成字符串 demo: 创建一定长度的固定字符循环字符串 new Array(2).join("ab");//abab new Array(100),创建长度为100的数组,每一个元素是undifind,join中会忽略undifind Array.prototype.reverse=======将数组逆序,会改变原来的数组 Array.prototype.sort()========对数组进行排序(默认是按字符串进行排序,可以自定义排序的方法) 原数组被修改 Array.prototype.concat() 数组合并 原数组没有被修改 Array.prototype

NumPy模块

匆匆过客 提交于 2020-02-17 23:58:06
NumPy模块的作用 这个模块是用C语言写的模块,主要是用于科学计算。而使用这个模块是基于多维数组的。 数组与列表的区别 一、数组里的元素必须是同一类型的数据 二、数组的大小是固定的。 numpy的安装 pip install numpy 数组对象的创建 数组对象的创建一般有以下的方法(注意首先导入numpy) import numpy as np # 创建对象的方法,均可带参数dtype指定数组元素的类型 # 方法一、 # arr = np.array([1, 2, 3, 4]) # 方法二、类似于range,不过此处步长可为小数 # arr = np.arange(3, 10, 0.2) # 方法三、前两个参数与arange一样,但第三个参数表明元素的个数 # arr = np.linspace(3, 10, 10) # 方法四、由于创建的数组不能为空,以下创建的数组的元素均是0 # arr = np.zeros(3) # [0. 0. 0.] # arr = np.zeros((3, 5)) # 创建的是3个数组,而每个数组含有5个元素 """ [[0. 0. 0. 0. 0.] [0. 0. 0. 0. 0.] [0. 0. 0. 0. 0.]] """ # 方法五、与四类似,但元素均是1 # arr = np.ones(4) # arr = np.ones((3, 5))

Java基础系列之四

梦想的初衷 提交于 2020-02-17 07:47:57
八、函数 函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。 函数的格式: 修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,...) { 执行语句; return返回值; }  返回值类型: 函数运行后的结果的数据类型。  参数类型: 是形式参数的数据类型。  形式参数: 是一个变量,用于存储调用函数时传递给函数的实际参数。  实际参数: 传递给形式参数的具体数值。  return: 用于结束函数。  返回值: 该函数运算后的结果,该结果会返回给调用者。 // 示例101. publicstaticintadd(inta,intb){ 02. returna+b; 03. } // 示例201. publicstaticvoidadd(inta,intb){ 02. System.out.println(a+b); 03. } 看了上面的两个示例,在函数的应用方面可以得出以下两个明确: 两个明确: 明确要定义的功能最后的结果是什么? 明确在定义该功能的过程中,是否需要未知内容参与运算。 

Java 中数组的内存分配

我的未来我决定 提交于 2020-02-17 07:12:51
Java 中数组的内存分配 1、Java 程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据和内存管理方式。 2、数组基本概念 数组是存储同一种数据类型多个元素的容器。 数组既可以存储基本数据类型,也可以存储引用数据类型。 格式:数据类型[] 数组名 ; int[] arr; 数组的初始化方式: 动态初始化 : 初始化时只指定数组长度,由系统为数组分配初始值。 格式:数据类型[] 数组名 = new 数据类型[数组长度]; 数组长度其实就是数组中元素的个数。 int[] arr = new int[3]; 解释:定义了一个int类型的数组,这个数组中可以存放3个int类型的值。 静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度 格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...}; int[] arr = {1,2,3}; 解释:定义了一个int类型的数组,并且存进去{1,2,3}三个数。 3、Java中数组的内存分配 A、基本内存分配概念图解 int[] arr 存在于堆内存,new int[3] 存在于栈内存。 在堆内存中每一个 new 出来的对象都有一个唯一的地址值,就如同图中的 001,在 int[] arr = new int[3]; 相当于把堆内存的地址值 001

Java基础_数组

眉间皱痕 提交于 2020-02-16 21:31:35
1、概念   数组就是同一种类型数据的集合。其实数组就是一个容器 好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。 格式1:   元素类型【】数组名= new 元素类型【元素个数或数组长度】;   int[ ] arr = new int[ 5]; 格式2:   元素类型【】 数组名 = new 元素类型【】{元素,元素,……};   int[ ] arr = new int [ ]{3, 5, 1,7};   int [ ] arr = {3, 5 ,1 , 7}; 2、内存的划分:   a、寄存器   b、本地方法区   c、方法区   d、栈内存     存储的都是局部变量     而且变量所属的作用域一旦结束,该变量就自动释放 1 { 2 //局部代码块,限定局部变量的生命周期 3 int age=3; 4 System.out.println(age); 5 }//age变量将释放,往后再无法使用age变量   e、堆内存     存储的数组和对象(其实数组就是对象) 凡是new 都建立在堆中     特点:     1、每一个实体都有首地址值     2、堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。     整数是0,小数是0.0,或者0.0f boolean false char 1 public class Demo{ 2 public

Java-Array01

放肆的年华 提交于 2020-02-16 21:30:20
Array class ArrayDemo { public static void main(String[] args) { /* 数组的定义方式: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度]; 好处:数组可以存储多个数据,而且可以对数据进行编号, 从0开始。操作元素完成可以通过编号(索引)完成。 */ int[] arr = new int[3];//通过new关键字创建了一个长度为3,元素类型是int的数组实体。 System.out.println(arr[1]); //System.out.println(arr[3]);//ArrayIndexOutOfBoundsException:访问到了数组不存在的索引时,会发生该异常。 arr = null; System.out.println(arr[0]);//NullPointerException:当使用没有任何实体指向的引用变量操作实体时,运行会发生该异常。 /* Java对内存空间的划分:五部分: 栈,堆,方法区,本地方法区,寄存器。 栈内存:存储都是局部变量。只要是在方法中定义的变量都是具备变量。 一旦变量的生命周期结束该变量就被释放。 堆内存:存储都是实体(对象) 每一个实体都有一个首地址值。 堆内存的变量都有默认初始化值。不同类型不一样。int-0 double-0.0 boolean