黑马程序员——数组
来源:互联网 发布:算法必须有输出 编辑:程序博客网 时间:2024/06/05 16:24
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
数组为引用数据类型。
int[] arr = new int[3];
在栈中开辟一块内存给arr。
在堆中开辟一块内存用来存储new int[3]。
将new int[3]的地址赋值给arr。
这种数据类型成为引用数据类型。
当arr = null;并且没有新的数据引用对中内存的地址时
堆中创建的new int[3]没有意义,为垃圾数据,有java的垃圾处理器不定期处理。
定义格式:
int[] arr = new int[3];
int arr[] = new int[3];
int[] arr = new int[]{1,2,3,4,7,5,}; //静态初始化
arr.length;
数组长度。
常见错误:
int[] arr = new int[3];
System.out.println(arr[3]);
编译时无错,运行时出错。因为编译时还没有运行,数组还不存在。
int[] arr = new int[3];
arr = null;
System.out.println(arr[1]);
arr已经不具有实体了,不能操作数组。空指针异常。
数组的遍历:
int[] arr = new int[3];
for(int x = 0; x<3; x++)
{
System.out.println(arr[x]);
}
遍历练习:定义功能,用于打印数组中的元素,元素间用逗号隔开
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x = 0; x<arr.length; x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.our.println(arr[x]+"]");
}
}
练习:获取数组中的最大值
public static int getMax(int[] arr)
{
int t = arr[0];
for(int x = 1; x<arr.length; x++)
{
t = t>arr[x]?t:arr[x];
}
return t;
}
练习:选择法排序
public static void selectSort(int[] arr)
{
for(int x = 0; x<arr.length-1; x++)
{
for(int y = x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
int t = arr[x];
arr[x] = arr[y];
arr[y] = t;
}
}
}
}
练习:冒泡法排序
public static void bubbleSort(int[] arr)
{
for(int x = 0; x<arr.length-1; x++)
{
for(int y = 0; y<arr.length-x-1; y++)
{
if(arr[y]>arr[y+1])
{
int t = arr[x];
arr[x] = arr[y];
arr[y] = t;
}
}
}
}
练习:折半查找
class HalfSearch
{
public static int halfSearch(int[] arr,int key)
{
int min = 0;
int max = arr.length-1;
int mid = (min+max)/2;
while(arr[mid]!=key)
{
if(arr[mid]>key)
max = mid - 1;
else if(arr[mid]<key)
min = mid + 1;
mid = (min+max)/2;
if(min>max)
return -1;
}
return mid;
}
public static void main(String[] args)
{
int[] arr = new int[]{1,3,5,7,9,11,13,15};
int x = halfSearch(arr,4);
System.out.println("x="+x);
}
}
{
public static int halfSearch(int[] arr,int key)
{
int min = 0;
int max = arr.length-1;
int mid = (min+max)/2;
while(arr[mid]!=key)
{
if(arr[mid]>key)
max = mid - 1;
else if(arr[mid]<key)
min = mid + 1;
mid = (min+max)/2;
if(min>max)
return -1;
}
return mid;
}
public static void main(String[] args)
{
int[] arr = new int[]{1,3,5,7,9,11,13,15};
int x = halfSearch(arr,4);
System.out.println("x="+x);
}
}
0 0
- 黑马程序员—数组
- 黑马程序员—数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 黑马程序员——数组
- 在MFC中捕获CWebBrowser控件的事件
- Hadoop HA(高可用)配置
- 慎用CCARRAY_FOREACH
- 进程和线程的区别
- Java中JOptionPane的用法
- 黑马程序员——数组
- 《思考的乐趣》读书笔记
- 在MFC应用中深入定制WebBrowser控件
- 软考——(2)数据结构
- Matlab基础学习--------关系和逻辑运算及多项式运算
- java之Io-File类
- 学习《Unix环境高级编程》之问题
- Poj1056
- JAVA_WEB项目(结合Servlet+jsp+ckEditor编辑器+jquery easyui技术)实现新闻发布管理系统第二篇:登陆和注销功能实现