数组的常见操作
来源:互联网 发布:编程怎么能学好 编辑:程序博客网 时间:2024/06/05 15:59
一、遍历—— for循环
int arr[] ={5,6,9,48,7,35,2};for(int i=0;i<arr.length;i++){System.out.println(arr[i]);}二、获取数组中的最大值
<span style="color:#ff0000;">//方法一:求数组中元素最大值 交换元素</span>public static int getArrayMax1(int[] x){int max=x[0];for(int i=1;i<x.length;i++){if(x[i]>max)max=x[i];}return max;}<span style="color:#ff0000;">//方法二:求数组中元素最大值 交换元素索引</span>public static int getArrayMax2(int[] x){int maxIndex=0;for(int i=1;i<x.length;i++){if(x[i]>x[maxIndex])maxIndex=i;}return x[maxIndex];}</span>三、选择排序
<span style="color:#ff0000;">//选择排序的方式一</span>public static void selectSort(int arr[]){for(int i=0;i<arr.length-1;i++){for(int j=i+1;j<arr.length;j++){if(arr[i] > arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}} }}<span style="color:#ff0000;">//选择排序方法二(推荐使用)</span>public static void selectSort1(int arr[]){for(int i=0;i<arr.length-1;i++){int index=i;for(int j=i+1;j<arr.length;j++){if(arr[index] > arr[j]){index = j;}}if(index != i){int temp = arr[index];arr[index] = arr[i];arr[i] = temp;}}}
四、冒泡排序
1、内层for循环中arr.length -1表示防止数组越界
2、内层for循环arr.length-i表示后边的额i元素已经确定,不用比较
<span style="color:#ff0000;">//冒泡排序方式一(面试使用)</span>public static void boubleSort1(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 = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}<span style="color:#ff0000;">//冒泡排序方式二</span>public static void boubleSort2(int arr[]){for(int i=arr.length -1;i>0;i--){for(int j=0;j<i;j++){if(arr[j] > arr[j+1]){int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}
五、二分查找
数组必须有序(从大到小或从小到大)
<span style="color:#ff0000;">//方法一</span>public static int halfSearch(int[] arr,int num){int min,max,mid;min=0;max=arr.length-1;mid = (min+max)/2;while(arr[mid]!=num) //如果num=mid,那么跳过循环,直接返回mid的下标即是所查数的下标{if(num>arr[mid])min=mid+1; //最小值移动到中间值的右侧,即中间值加1else if(num<arr[mid])max=mid-1;if(min>max)return -1;mid=(max+min)/2; //最大值移动到中间值的左侧,即中间值减1}return mid;}<span style="color:#ff0000;">//方法二</span>public static int halfSearch1(int arr[],int num){int min,max,mid;min=0;max=arr.length-1;while(min<=max) {mid=(min+max)/2;if(arr[mid]<num)min=mid+1;else if(arr[mid]>num)max=mid-1;elsereturn mid;}return -1;}/*<span style="color:#ff0000;">面试题:给定一个有序的数组,如果往这个数组中存储一个元素,并保证这个数组是有序的,那么这个元素的存储脚标如何获取</span>*/public static int halfInsert(int[] arr,int num){int min,max,mid;min=0;max=arr.length-1;mid = (min+max)/2;while(arr[mid]!=num) {if(num>arr[mid])min=mid+1; //最小值移动到中间值的右侧,即中间值加1else if(num<arr[mid])max=mid-1;if(min>max)<span style="color:#ff0000;">return min;</span> <span style="color:#ff0000;">//min>max表示num没有在数组中(与查找数据相似,把-1换成min即可)</span>mid=(max+min)/2; //最大值移动到中间值的左侧,即中间值减1}return mid;}
1 0
- 数组的常见操作
- 数组的常见操作
- 数组的常见操作
- 数组的常见操作
- 数组的常见操作
- c#数组的常见操作
- javascript常见的数组操作
- 【java笔记】数组、数组的常见操作
- java中数组的常见操作
- java中的数组的常见操作问题
- JavaScript 数组的常见操作和属性
- 关于数组操作的常见题型
- js 常见数组和字符串的操作
- Java中一维数组的常见操作
- js 常见数组和字符串的操作
- 数组操作的两个常见小问题
- Js中数组的常见操作
- 数组及常见操作
- GUI.tooltip
- Context详解(一)
- copy-list-with-random-pointer
- hdu5463
- 51nod 1099:任务执行顺序 贪心
- 数组的常见操作
- 蓝懿ios 技术内容和心得 10。23
- cocos2d-x-3.5 android 编译
- 网站字体渲染过程
- Spring MVC静态资源处理——<mvc:resources /> ||<mvc:default-servlet-handler />
- PPT基础与进阶
- ftp 上传 文件 下载文件
- 黑马程序员——Java 基础:静态
- 迅雷是怎么下载的