首页 > 代码库 > 数组的排序

数组的排序

数组:是一个装大批量同类型数据的容器
变量:是一个装数据的空间----一个变量只能装一个数据
开一个变量-----开一个房间
开一个数组---开多个同类型房间
二维数组:也是一个装大批来那个同类型数据的容器
一维数组:盖一层的楼房
二维数组:盖多层的楼房
一位数组 二位数组
int[] int[][]
double[] double[][]
char[] char[][]
二维数组的定义:
第一步:开一条街 数组类型 数组名=new 变量类型[层数][间数];
int[][] arr; //标识开了整数一条街
第二部:在街上盖房子:指定层数和每层间数 内存空间也是连续的
l例:2层 每层2间的整数房间
arr=new int[2][2];//盖2层 每层盖2间的整数房间
第3步:逐间的住人, 数组名[层下标][间下标]
arr[0][0]=5;//层下标和间下标都从0开始
第四步:查房
查第一层:
for(int j=0;j<=1;j++){
for(int i=0;i<=4;i++){
System.out.println(arr[j][i]);
}
}
 
 
二维数组的特殊使用:
 
一 ,二合一
int[][] arr;
arr=new int[2][3];
=======>int[][] arr=new int[2][4];
2 三和一
int[][] arr=new int[][4]{{5,6,7,8}{1,2,3,4}};
层数可以省略,但是间数不能省略
简写为
int[][] arr={{5,6,7,8}{1,2,3,4}}
 
3二维数组的两种定义形式
int[][]arr;等价于 int arr[][];
4二维数组的层数:数组名.length
二维数组的间数:数组名[层下标].length
int[][]arr= new int[3][4];层数为3,间数为4
层数=arr.length
间数=aarr[0].length;//每层间数都一样
5二维数组有默认值
int[][] 0
double[][] 0.0
String[][] null
char[][] ASCII为0的字符
 
二维数组的查找:
定义一个二维数组的保存,二狗子......六钩子
String[3][2],
一个范围,达不到的数值用小于<,达的到数值用<=
break只能结束当前循环
查找问题:找不到的时候提示,中间找了之后的马上结束循环
 
二维数组的综合实例:杨辉三角
1.两边都是1
2.每行的列数=行号
3.里面的任意一个数等于肩上两数之和
要求输出杨辉三角的前十行
二维数组默认打印出来的是10行10列的矩阵
层数就是行数,列数就间数,行在外面,列在里面
public class Test {
public static void main(String[] args) {
int[][] arr=new int[10][10];
for(int j=0;j<arr.length;j++){
for(int i=0;i<=j;i++){
if(i==0||i==j){
arr[j][i]=1;
 
}else{
arr[j][i]=arr[j-1][i-1]+arr[j-1][i];
}
System.out.print(arr[j][i]+"\t");
 
 
}
System.out.println();
}
 
System.out.println();
}
}
 
 
数组的排序:1、冒泡排序 2、选择排序 3、插入排序
选择排序:小====>大
固定一个数,拿第一个数和第二个数比,判断是否交换,拿第一个数和第三个数比,判断是否交换
拿第一个数和后面的数比
选择排序也是一轮一轮来的
选择第一个数和后面比较
选择第二个数和后面比较
选择第三个数和后面比较
插入排序:小=====》大
把第一个空间分割开
分割后把第一个数插入前面数组
 
java.util中也有封装好的类
//Arrays.sort(arr);
for(int i=0; i<arr.length;i++){
 
 
System.out.println(arr[i])
}
有时间学习二分法
技术分享
 
技术分享
 
技术分享
 
 
技术分享
 
技术分享
优化:当我们找到了想要的东西后,外面的循环也要结束,如下
技术分享
 
 
 
 
 

数组的排序