关于数组的操作
2011-10-14 21:46
197 查看
操作1,获取数组的最大值和最小值:
获取最大值:
获取最小值:
操作2:数组排序:
选择排序:
原理示意图:
冒泡排序:
原理示意图:
操作3:查找是否存在某个元素:
普通查找方式:
折半查找法:
原理示意图:
另一种折半查找方式:
获取最大值:
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; }
相关文章推荐
- C语言关于数组的常见操作汇总
- php入门学习知识点五 关于php数组的几个基本操作
- Java关于数组的操作
- COBOL中关于数组的操作
- 关于控件数组的一些操作
- 再来一波关于数组的操作
- 关于字符数组的指针移动操作
- 关于字符串以及数组的操作
- 关于动态数组指针操作的两个例子
- 关于数组的一些操作
- javascrip中关于数组的操作和部分string
- 关于Java 对数组基本操作小记
- visual studio 关于指针与数组操作的比较
- 关于二维数组分解为一维数组进行操作
- 关于matlab数组操作的讨论
- Tensorflow入门 :关于数组的操作
- 关于javascript里面仿python切片操作数组的使用方法
- 关于动态存储分配函数的调用,在已经过排序的数组中查找及删除内容的操作,余数的分析,删除字符数组中的空格,对链表的逆置,在源字符串中查找子字符串的个数,函数指针以及函数的调用,循环赋值带来的问题以及插入
- 关于JS中的数组操作.备忘
- 关于java整形数组的两个简单操作