初级
1
:数组元素求和:计算一个整数数组中所有元素的和。 必做
2
:数组排序 :对整数数组进行排序(可以使用冒泡排序、选择排序、插入排序等简单排序
算法)。必做
3
: 数组中重复的数字:在一个长度为
n
的数组里
找出数组中重复次数最多的前两个数
{1,2,3,4,1,2,1,2,3,1,3,2,1,1}
4
:数组中第二大的数:找出数组中第二大的数。
5
: 数组中的最大子段和,给定一个整数数组,找到一个具有最大和的连续不重复子数组,
返回其最大和。
6
: 组中第
k
大的元素 设计一个算法,找出数组中第
k
大的元素。
C
语言
:
格式
1
:
int arr[10];
格式
2
:
int arr[] = {1,2,3};
数组:
- 标识: []
- 结构: 一段连续的内存空间 ,可以存储多个相同类型的元素 ,数组创建好之后长度(可存储的元素总个数)是不可变的
- 定义: 格式1:创建的数组已经分配了内存空间,但是还没存储元素 ,默认值一般是0 字符串 就是 null
- 数组中所需要存储的元素的类型[] 数组名 = new 数组中所需要存储的元素的类型[数组的长度];
- 数据类型[] 数组名= new 数据类型[长度];
- PS: int[] arr=new int[10];// 创建了一个长度为10的int类型数组,其中默认值都是0
-
格式2:创建一个初始化好数据的数组public class ArrayDemo { public static void printArray(int[]arr){ int length=arr.length; System.out.print("["); for (int i = 0; i < length; i++) { int n=arr[i]; System.out.print(n+" "); } System.out.print("]"); } public static void main(String[] args) { int[]arr=new int[10]; int length=arr.length; printArray(arr); for (int i = 0; i < length; i++) { arr[i]=100+i; } printArray(arr); int num=114; boolean flag=false; for (int i = 0; i < length; i++) { int n=arr[i]; if (n==num){ flag=true; break; } } if(flag==true){ System.out.println(num+"存在于数组中"); }else{ System.out.println(num+"不存在于数组中"); } int num2=107; int index=-1; for (int i = 0; i < length-1; i++) { int n=arr[i]; if(n==num2){ arr[i]=0; index=i;//记录目标元素位置 } } printArray(arr); //指定下标删除 int rindex=5; for (int i = rindex; i <length-1 ; i++) { arr[i]=arr[i+1]; } arr[length-1]=0; printArray(arr); //指定区间删除 int si=2,ei=6; int d=ei-si; for (int i = 0; i <d; i++) { System.out.println(si+i); System.out.println(ei+i+1); if (ei+i+1>=length){ arr[si+i]=0; }else{ arr[si+i]=arr[ei+i+1]; } } for (int i = 1; i <=d; i++) { arr[length-i]=0; } printArray(arr); //交换元素位置 int temp=arr[1]; arr[1]=arr[2]; arr[2]=temp; printArray(arr); //重置数据 for (int i = 9; i >0; i--) { arr[9-i]=i; } arr[7]=25; printArray(arr); for (int i = 0; i < length-1; i++) { int a=arr[i]; int b=arr[i+1]; if(a>b){ arr[i]=b; arr[i+1]=a; System.out.println("交换位置: "); printArray(arr); } } printArray(arr); } }
- 数据类型[] 数组名={元素1,元素2,元素3};PS: String[] strs = {"Hello","world","work"};// 创建了一个长度为3的字符串类型数组
数组中可以使用的一些属性:
下标:对应数组每个存储单元的索引编号
从
0
开始,依次
+1
,数组中第一个元素的下标就是
0
最后一个元素的下标就是数组
的长度减一:
length-1
格式: 数组名
[
下标
]
1
: 存储数据: 数组名
[
下标
]=
数据
;
PS
:
arr[9]=100;
2:
取出数据: 数据类型 变量名
=
数组名
[
下标
];
PS
:
String str1 = strs[2];
使用下标时: 不要超过数组的范围
0~length-1
长度:获取一个数组的长度 可以使用 数组名
.length
使用循环操作数组:
遍历: 从第一个元素开始,依次访问数组中的每个元素,直到最后一个元素。
for(int i=0;i<arr.length;i++){ arr[i]=i; }
基本操作:
通过遍历给数组赋值
通过遍历打印数组中所有元素
根据元素值查找数组中是否存在这个元素
删除数组中的元素
交换数组中的元素位置