关于数组的操作
来源:互联网 发布:淘宝跑路双十一 编辑:程序博客网 时间:2024/04/26 05:09
操作1,获取数组的最大值和最小值:
获取最大值:
public static int getMax() {int[] arr = { 1, 2, 3, 4, 5, 6, 7 };int max = arr[0];for (int i = 0; i < arr.length; i++) {if (max < arr[i]) {max = arr[i];}}return max;}
获取最小值:
public static int getMin() {int[] arr = { 8, 2, 3, 4, 5, 6, 7 };int min = arr[0];for (int i = 0; i < arr.length; i++) {if (min > arr[i]) {min = arr[i];}}return min;}
操作2:数组排序:
选择排序:
原理示意图:
public static void printArr(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + "\t");}System.out.println();}
int[] arr = { 1, 3, 5, 7, 2, 4, 6 };for (int i = 0; i < arr.length - 1; i++) {// 因为最后一个元素不用在比较了for (int j = i + 1; j < arr.length; j++) {int temp;if (arr[i] > arr[j]) {temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}
冒泡排序:
原理示意图:
public static void sort(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1 - i; j++) {int temp;if (arr[j] > arr[j + 1]) {temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}printArr(arr);}
操作3:查找是否存在某个元素:
普通查找方式:
public static int search(int[] arr, int target) {if (arr.length > 0) {for (int i = 0; i < arr.length; i++) {if (arr[i] == target) {return i;}}}return -1;}
折半查找法:
原理示意图:
public static int halfSearch(int target) {int[] arr = { 1, 2, 3, 4, 5, 6 };int min, max, mid;min = 0;max = arr.length - 1;mid = (min + max) / 2;while (arr[mid] != target) {if (arr[mid] > target) {max = mid - 1;} else if (arr[mid] < target) {min = mid + 1;}if (min > max) {// 如果数组没有这个元素return -1;}mid = (min + max) / 2;}return mid;}
另一种折半查找方式:
public static int halfSearch2(int target) {int[] arr = { 1, 2, 3, 4, 5, 6, 7 };int min, max, mid;min = 0;max = arr.length - 1;while (min <= max) {mid = (min + max) / 2;if (target > arr[mid]) {min = mid + 1;System.out.println(min);} else if (target < arr[mid]) {max = mid - 1;} else {return mid;}}return -1;}
- 关于数组的操作
- Java关于数组的操作
- 关于数组的一些操作
- 关于数组操作的tips
- JS关于数组的操作
- 关于matlab数组操作的讨论
- COBOL中关于数组的操作
- 关于数组的一些简单操作
- 关于字符数组的指针移动操作
- 黑马程序员---关于数组的操作
- Javascript关于数组的一些操作
- 关于数组操作的常见题型
- 关于数组中重复元素的操作
- 关于字符串以及数组的操作
- Tensorflow入门 :关于数组的操作
- 关于PHP数组操作
- java一道关于二维数组的操作的题目
- Delphi中关于动态数组的引用操作
- RedHat Linux 下安装MPlayer 编译源代码方式
- 养成好习惯,提高sql效率
- 【C++专题】static_cast, dynamic_cast, const_cast探讨
- instanceof的使用
- iml回归
- 关于数组的操作
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- HDU 2028最小公倍数LCM 最大公约数GCD
- 基于自由Linux十一国庆后的第一天提升
- Android的selector,背景选择器
- spring依赖注入(Ioc)控制反转
- Shell调试技术总结(一)
- CString转换为int
- JSON与JAVA数据的转换