数组相关

来源:互联网 发布:手机多大内存够用 知乎 编辑:程序博客网 时间:2024/05/29 02:40

数组

数组:一组能够存储相同数据类型的变量的集合
当我们有一组相同类型的数据需要存储,如果此时使用单个变量来存储,我们将要定义若干个变量名,这样将会非常繁琐,并不利于维护
(1)数组必须要有长度
(2)所有数组都有一个length属性(一个食物特征)
数组声明:
(1)先声明,在分配空间
int[] x;//声明(定义)一个整形数组
x = new int[3];//new关键字就是用于向内存申请空间。有JVM分配
给数组中的空间赋值(每一个空间中的值我们称为元素)
数组空间的位置称为下标,下表从0开始
数组的空间是连续的
分配的空间会根据不同的数据类型有默认值
数组下表的最大值是数据长度-1


(2)声明并分配空间
int[] x = new int[3];//声明一个整型数组并申请内存空间
(3)声明,分配空间,并赋值
int[] x = new int[]{1,2,3};
简写:int[] x = {1,2,3};
内存管理:
简单理解:把JVM的内存分为栈内存和堆内存
栈内存:存储数据是:变量名,局部变量,临时变量,参数(基本数据类型)、可以存入地址(如:数组的引用地址)与基本数据类型的值;是一种数据存储结构,先进后出
堆内存:存储数据是:数组和对象
(1)数组是存储在堆内存中
从大小上看,栈内存要比堆内存块
从存储数据灵活性看,堆内存要栈内存更灵活


多维数组:
JAVA中没有真正意义上的多维数组
多维数组中的元素定义为数组来表示
多维数组中的每个数组元素可以不同
多维数组表现为一个矩阵
下标使用行位置和列位置来确定




小结:数组是一种数据结构(线性),有序排列,我们在使用数组时,要保证数组元素的连续性。数组的大小必须固定,通常情况下,数组不建议做删除操作,如果要删除某一个元素,我们的算法是要
保证数据的连续性,被删除的元素之后的元素要依次往前移动来保证连续性。这样的好处是为了提高数组的添加元素操作。


数据是不利于删除和插入操作,更适合存取操作


两个变量a,b不通过第三个变量,如何交换值:
int a = 10;
int b = 12;
a = a+b;
b = a-b;
a = a-b;


a=a^b;
b=a^b;

a=a^b;

冒泡排序法
//稳定的算法:当序列中有相同的数,排序后位置保持不变
//两个相邻的数相比,大的在后,小的在前

public class MaoPao {


public static void main(String[] args) {
// TODO Auto-generated method stub
int[] num = {23,2,18,90,7,56};
int temp = 0;
for (int i = 0; i < num.length-1; i++) {
for (int j = 0; j < num.length-1-i; j++) {
if(num[j]>num[j+1]){
/*temp = num[j];
num[j] = num[j+1];
num[j+1]=temp;*/
/*
* num[j]=num[j]+num[j+1];
* num[j+1]=num[j]-num[j+1];
* num[j]=num[j]-num[j+1];
*/

num[j]=num[j]^num[j+1];
num[j+1]=num[j]^num[j+1];
num[j]=num[j]^num[j+1];
 
}
}
}
System.out.println(Arrays.toString(num));
}


}

选择排序

import java.util.Arrays;


/**
 * 选择排序算法:
 * 从小到大排
 * 以第一个数为最小数,依次同其它数比较,然后交换位置
 * 是不稳定的算法
 */
public class SelectDemo {
public static void main(String args[]){
int[] num = {74,2,54,7,22,5};
int minIndex = 0;
for (int i = 0; i < num.length-1; i++) {
minIndex=i;
for(int j=i+1;j<num.length;j++){
if(num[minIndex]>num[j]){
minIndex = j;
}
}
if(minIndex!=i){
int temp = num[minIndex];
num[minIndex]=num[i];
num[i]=temp;
}
}
System.out.println(Arrays.toString(num));
}
}

0 0
原创粉丝点击