数组常见题型分析

一丶数组的添加

  1. 创建一个新的数组int[] arr={1,2,3}
  2. 在创建一个新的数组arr2
  3. Arr2的长度是arr的长度加1
  4. 遍历数组arr1,并且将arr1的数组元素全部复制到arr2中
  5. 把4的值赋给arr2「arr.length-1」

二丶数组的减少
6. 创建一个新的数组int[] arr={1,2,3,4,5}
7. 在创建一个新的数组arr2
8. Arr2的长度是arr的长度减一
9. 遍历arr数组(这里注意,arr2的长度比arr少,所以,要少遍历一个)
10. 将arr数组的元素全部拷贝到arr2中
11. 运用do-while循环,当减到最后一个元素时,提示,不能再减少

三丶将一个数组进行逆序输出(1)
逆序赋值发:
12. 创建一个新的数组int [] arr={11,22,33,44,55,66}
13. 再开辟一个新的空间,创立新的数组arr2
14. 使用for循环
15. Arr2数组的第一个数组等于arr数组的最后一个元素
16. 遍历arr2数组并输出数组

使用 数组长度/交换次数的方法

  1. 创建一个新的数组int[] arr={11,22,33,44,55,66}
  2. 遍历arr,输出交换前的数组元素顺序
  3. 声明定义一个中间变量 temp
  4. For(int i=0;i<arr.length/3;i++){
    Temp=arr[i];
    Arr[i]=arr[arr.length-1-i];
    Arr[arr.length-1-i]=temp;
  5. 使用上述方法完成交换
  6. 遍历arr,输出交换后的数组元素顺序

四丶在数组中找到最大值
23. 声明定义一个数组
24. 定义两个变量,一个代表最大值,一个代表最大值所对应的下标
25. 将第一个元素首先看成最大元素
26. 使用for循环里面嵌套if语句进行比较
27. 如果后面的比第一个元素大,则把后面的元素值赋给最大值

五丶数组的拷贝
1定义声明一个新的数组int[] arr={10,20,30}
2.再开辟一个新的空间,创建一个新的数组arr2
3.arr2的长度等于arr的长度
4.使用for循环对arr进行遍历并且将arr的值依次赋值给arr2
5.Arr与arr2是两个独立的空间,因此,改变arr的值不会改变arr2的值

六丶冒泡排序
{24,59,82,27,13}
第一轮比较(为了将最大的数放到最后面):
第一次比较:24,59,82,27,13
第二次比较:24,59,82,27,13
第三次比较:24,59,27,82,13
第四次比较:24,59,27,13,82
第二轮 比较(为了将第二的数字放到倒数第二个位置上):
第一次比较:24,59,27,13,82
第二次比较:24,27,59,13,82
第三次比较:24,27,13,59,82
第三轮比较(为了将第三大的数子放在倒数第三个位置上):
第一次比较:24,27,13,59,82
第二次比较:24,13,27,59,82
第四轮比较:(为了将第四大的数字放在倒数第四个位置上):
第一次比较:13,24,27,59,82
由此可见:数组重的元素共有五个,共比较了四轮
第一轮比较的代码:
int temp=0;
For(int j=0;j<4;j++){
If(arr[j]>arr[j+1]){
Temp=arr[j];
Arr[j]=arr[j+1];
Arr[j+1]=temp;
}
}
所以,经过类比,全代码为:
Int temp=0;
For(int i=0;i<4;i++){
For(int j=0;j<4;j++){
If(arr[j]>arr[j+1]){
Temp=arr[j];
Arr[j]=arr[j+1];
Arr[j+1]=temp;
}
}
}
为了增加代码的灵活性:
Int temp=0;
For(int i=0;i<arr.length;i++){
For(int j=0;j<arr.length-1-i;j++){
If(arr[j]>arr[j+1]){
Temp=arr[j];
Arr[j]=arr[j+1];
Arr[j+1]=temp;
}
}
}
注:arr.length-1-i:是为了体现出每轮下面的比较次数的递减过程:(4(5-1-0)->3(5-1-1)->2(5-1-2)->1(5-1-3))

七丶顺序查找
28. 建立新的数组
29. 接收用户输入
30. 遍历数组,并且进行比较
注:新的代码思想,可以通过定义一个index来判断程序是否进入if判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值