第六章 数组、排序查找

第六章 数组、排序查找

6.1 数组

数组的定义:数据类型 数组名[] = new 数据类型[大小];

int a[] = new int[5];

或者分开”:

double scores[];

scores = new double[5];
//基本数据类型赋值,赋值方式为值拷贝;
//n2的变化不会影响到n1;
int n1 = 10;
int n2 = n1;

n2 = 80; 
System.out.println(n1);//10
System.out.println(n3);//80



//数组在默认情况下是引用传递,赋的值是地址,赋值方式为引用赋值
//是一个地址,arr2的变化会影响到arr1;
int[] arr1 = {1,2,3};
int[] arr2 = arr1;

arr2[0] = 10;
//看arr1的值
for(int i = 0 ; i< arr1.length;i++){
    System.out.println(arr1[i]);//10 2 3
}


6.2 排序

排序是将多个数据,依指定的顺序进行排列的过程。

6.2.1内部排序:

指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法);

冒泡排序

​ 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。

第六章 数组、排序查找

6.2.2外部排序法:

数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)。

6.3查找

在 java 中,我们常用的查找有两种:

\1) 顺序查找 SeqSearch.java

\2) 二分查找【二分法,我们放在算法讲解】

6.4 多维数组

\1) 语法: 类型[][] 数组名=new 类型[大小][大小] 
\2) 比如: int a[][]=new int[2][3]
    
二维数组的每个元素是一维数组, 所以如果需要得到每个一维数组的值,还需要再次遍历 
//(3) 如果我们要访问第 (i+1)个一维数组的第 j+1 个值 arr[i][j]; 
// 举例 访问 第 3 个一维数组的第 4 个值 arr[2][3]

第六章 数组、排序查找

6.5 二维数组使用细节和注意事项

\1) 一维数组的声明方式有: 

int[] x 或者 int x[] 

\2) 二维数组的声明方式有: 

int[][] y 或者 int[] y[] 或者 int y[][]

\3) 二维数组实际上是由多个一维数组组成的,它的各个一维数组的长度可以相同,也可以不相同。比如: 
map[][] 是 一个二维数组 

int map [][] = {{1,2},{3,4,5}} 
上一篇:算法设计与分析——算法复杂性分析


下一篇:请实现字符串从两边逐渐聚拢