概述
有关数组
1.定义:
数组是一个变量,存储相同数据类型的一组数据。
2.格式:
数据类型 数组 名[ ] 或 数据类型[ ] 数组名 ;
3.特点 :
1.数据类型相同
2.数组名实际就是一个变量,既然是变量就必须先赋值再使用
3.数组的每一个元素既可以是基本数据类型也可以是引用数据类型
4.数组的初始化:
1.静态初始化
(1)初始化的同时为每个元素赋值,不需要指明长度
(2) int[ ] scores = {100,70,98,67}; //创建数组对象并初始化,存放4个成绩
2.动态初始化
(1.)初始化时由系统分配初始值,需要指明数组长度
(2.)int[] scores = new int[10];//创建数组对象,存放10个int数据,默认0
5.数组的相关思想
下面以一道编程题来总结其相关思路:
有一个数列:8,4,2,1,23,344,12
- A 求数列中所有数值的和。
- B 求出最大值。
- C 将数组倒置并输出
- D 数组查找 猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数。
- E 数组排序
A: 数组内的和
/*
* 功能:求数列中所有数值的和。
* 返回值类型: int
* 参数列表: int[] arr
* 方法名: getSum
*/
public static int getSum(int[] arr) {
// 1.定义求和变量
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
B:数组最值
/*
* 功能: 求出最大值。
* 返回值类型: int
* 参数列表: int[] arr
* 方法名: getMaxValue
*/
public static int getMaxValue(int[] arr) {
// 1.假设第一个数为最大值
int max = arr[0];
// 2.遍历数组中的每一个元素
for (int i = 0; i < arr.length; i++) {
// 获取到每一个元素arr[i]
// 3.判断获取的元素是否比max大
if (arr[i] > max) {
// 4.设置arr[i]为最大值
max = arr[i];
}
}
return max;
}
/*
* 功能: 求出最小值。
* 返回值类型: int
* 参数列表: int[] arr
* 方法名: getMinValue
*/
public static int getMinValue(int[] arr) {
// 1.假设第一个数为最大值
int min = arr[0];
// 2.遍历数组中的每一个元素
for (int i = 0; i < arr.length; i++) {
// 获取到每一个元素arr[i]
// 3.判断获取的元素是否比max大
if (arr[i] < min) {
// 4.设置arr[i]为最大值
min = arr[i];
}
}
return min;
}
C:数组倒置
/*
* 功能: 将数组倒置并输出
* 返回值类型: void
* 参数列表: int[] arr
* 方法名: reverseArray
*
* {8,4,2,1,23,344,12} --> {12,344,23,1,2,4,8}
* 第一交换
* 第一个数和最后一个数交换位置
* int temp = 0;
* temp = arr[0];
* arr[0] = arr[arr.length - 1 - 0];
* arr[arr.length - 1 - 0] = temp;
*
* 第二次交换
* 第二个数和倒数第二个数交换位置
* int temp = 0;
* temp = arr[1];
* arr[1] = arr[arr.length - 1 - 1];
* arr[arr.length - 1 - 1] = temp;
*
* 第三次交换
* 第三个数和倒数第三个数交换位置
* int temp = 0;
* temp = arr[2];
* arr[2] = arr[arr.length - 1 - 2];
* arr[arr.length - 1 - 2] = temp;
*
* 循环体代码:
* int temp = 0;
* tmep = arr[i];
* arr[i] = arr[arr.length - 1 - i];
* arr[arr.length - 1 - i] = temp;
*
* 循环的次数
* 7个数 --> 交换3次
* 6个数 --> 交换3次
* 5个数 --> 交换2次
* 4个数 --> 交换2次
* i个数 --> 交换i/2次
*/
public static void reverseArray(int[] arr) {
for (int i = 0; i < arr.length / 2; i++) {
int temp = 0;
temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
}
D:数组查找
/*
* 数组查找:从键盘中任意输入一个数据,判断数列中是否包含此数。
* 返回值类型: boolean
* 参数列表: int[] arr, int num
* 方法名: isContainsNum
*/
public static boolean isContainsNum(int[] arr, int num) {
// 默认概述在数组中不存在
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
flag = true;
break;
}
}
return flag;
}
/*
* **数组查找**:从键盘中任意输入一个数据,判断数列中是否包含此数。
* 返回值类型: int
* 参数列表: int[] arr, int num
* 方法名: baiscSearch
*/
public static int baiscSearch(int[] arr, int num) {
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
index = i;
break;
}
}
return index;
}
E:排序
(1)冒泡排序法
/*
* 功能: **冒泡排序法**
* 返回值类型: void
* 参数列表: int[] arr
* 方法名: bubbleSort
*/
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
int temp = 0;
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
(2)选择排序法
/*
* 功能: **选择排序法**
* 返回值类型: void
* 参数列表: int[] a
* 方法名: Raise
*/
public static void Raise(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[j] < a[i]) {
int temp = 0;
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
System.out.println("排序后" + Arrays.toString(a));
}
(3)快速排序法
/*
***快速排序法**
*/
int[] arr = {1,2,8,90,42,43};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
总结:
数组内可进行求和、求最值、数组内查找、数组排序(升序和降序)等方法思想。
最后
以上就是陶醉百褶裙为你收集整理的数组相关及其主要思想回顾有关数组总结:的全部内容,希望文章能够帮你解决数组相关及其主要思想回顾有关数组总结:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复