java0401-0407 数组常见问题
来源:互联网 发布:mac excel公式 编辑:程序博客网 时间:2024/06/08 19:49
一、0401
1.引用不存在的数组下标时,会出现outofbounds(越界错误。2.如果取消数组的指向,那么会无法引用到数组元素,而且整个数组将丢失。
二、0402-数组的遍历
数组遍历常和for循环共同使用。数组类有一个叫做length的成员变量。
int[] arr = {1,6,5,7,4,8};
for(int x = 0; x < arr.length; x++){
S.O.P(arr[x]);
}
三、数组作为参数
public static vodi printA(int [] arr){
for(int x= 0; x< arr.length; x++)
{
S.O.P(arr[x]);
}
}
TIP:如果直接输出arr,打印出来的是内存地址。 [I@de6ced
中括号:数组 I:整形 @右边即为内存地址。这个地址由哈希算法算出。
四、一些常见算法
1.取最值
思路:定义第一个为大,有比之大者即替换。最小值类似。
package com.itheima;
//7、 编写程序接收键盘输入的5个数,装入一个数组,并找出其最大数和最小数。
import java.io.*;//导入io,util包以支持从键盘的输入
import java.util.*;
public class Test7 {
public static void main(String Args[]){
Scanner in = new Scanner(newBufferedInputStream(System.in));//声明scanner
int tmp[] = new int[5];
int big,small;
for(int i = 0; i < tmp.length; i++){
tmp[i] = in.nextInt();
}//获取输入
in.close();
big = tmp[0];
small = tmp[0];
for(int i = 0; i < tmp.length; i++){
if(big < tmp[i])
big = tmp[i];
if(small > tmp[i])
small = tmp[i];
}//进行比较
System.out.print("small:"+small+" "+"big:"+big);//输出
}
}
2.选择排序
思路:
从第一个开始,拿第一个跟后面的比,一旦遇到比第一个小的则互换位置。
public static void selectSort(int[] arr){
for (int x = 0; x
{
for(int y = x +1; y < arr.length; y++)
{
if(arr[x] > arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
3.冒泡排序
思路:相邻元素比较,符合条件则进行换位。每次出一个当前排列中的一个最值(到底是最大值还是最小值取决于比较方式)到队列尾端。参与比较的元素随着循环次数增多而逐渐减少。
public static void bubbleSort(int[] arr){
for(int x = 0; y < arr.length - 2; x ++){
for(int y = 0; y < arr.length - x - 1; y ++){
if(arr[y] > arr[y+1]){
int temp = arr[y];
arr[y] = arr[y + 1];
arr[y +1] = temp;
}
}
}
}
在栈内存中进行运算,效率要高,
四、折半查找
任务目的:在一个数组中查找key值。
方法一:直接查找。缺点:效率太低。
方法二:折半查找。方法:假设有n个数字(已排序)。比较查找数据与最大数据之间的关系,如果最大值比查找值大,就将最小值设置为原查找范围的一半。
0 0
- java0401-0407 数组常见问题
- 数组常见问题
- Solaris 常见问题问答
- XML 中的常见问题 (四)
- XML 中的常见问题 (三)
- XML 中的常见问题 (二)
- XML 中的常见问题 (一)
- iOS常见问题【debug】 gdb
- VS 2010常见问题集
- Cisco VPN Client 常见问题解析
- javascript 数组 array
- JavaScript 数组 001
- JavaScript 数组 002
- 数组 for php
- 数组(静态初始化-常见问题)
- 数组的一些常见问题
- JavaScript 数组 003 完
- js 数组
- java基础-第二节 入门
- 20150727 Javascript进阶学习笔记(上)
- java基础-第三节 流程控制-循环
- java基础-第三节 函数
- java基础-第四节 数组和内存结构
- java0401-0407 数组常见问题
- hdu 2187 悼念512汶川大地震遇难同胞——老人是真饿了
- java0408-0412 进制转换
- java0501-0512 面向对象概述
- 浅谈C++之继承机制
- Java设计模式—适配器模式
- java0601 static 静态
- 0701-070x 继承
- 0801-0807 多态 接口