2019-06-13 java学习日记
2020-12-13 01:56
标签:方法 bubble select 冒泡 位置 最大的 使用 public 选择 两个相邻位置比较,如果前面的元素比后面的元素大就换位置 用一个索引位置上的元素,依次与其他索引位置上的元素比较,小在前面大的在后面 如果数组无序,就不能使用二分查找 针对数组进行操作的工具类 提供了排序,查找等功能 1,public static String toString(int[] a) 2,public static void sort(int [] a) 3,public static int binarySearch(int [] a,int key) 2019-06-13 java学习日记 标签:方法 bubble select 冒泡 位置 最大的 使用 public 选择 原文地址:https://www.cnblogs.com/Sherwin-liao/p/11020469.html冒泡排序
1 //冒泡排序
2 public static void main(String[] args) {
3 int[] arr = {32, 44, 55, 65, 11};
4 bubble(arr);
5 print(arr);
6
7
8 }
9
10
11 private static void bubble(int[] arr) {
12 //外循环只需要比较数组的长度-1次
13 for (int i = 0; i ) {
14 //内循环 -1是为了防止索引越界,-i是为了提高效率
15 for (int j = 0; j ) {
16 //这里这个大于小于是决定他是从大到小还是从小到大
17 if (arr[j] > arr[j + 1]) {
18 int a = arr[j];
19 arr[j] = arr[j + 1];
20 arr[j + 1] = a;
21 }
22 }
23
24 }
25 }
26 //打印
27 private static void print(int[] arr) {
28 for (int i = 0; i ) {
29 System.out.print(arr[i] + " ");
30 }
31 }
选择排序
1 public static void main(String[] args) {
2 int[] arr = {32, 44, 55, 65, 11};
3 bubble(arr);
4 // select(arr);
5 print(arr);
6 }
7 /**
8 * 选择排序
9 * 1、返回值类型void
10 * 2、参数列表int[] arr
11 */
12 public static void selectSort(int[] arr) {
13 //只需要比较arr.length-1次
14 for (int i = 0; i ) {
15 for (int j = i + 1; j ) {
16 if (arr[i] > arr[j]) {
17 /*int temp = arr[i];
18 arr[i] = arr[j];
19 arr[j] = temp; */
20 swap(arr, i, j);
21 }
22 }
23 }
24 }
25 /**
26 * 打印数组
27 * 1、返回值类型void
28 * 2、参数列表int[] arr
29 */
30 public static void print(int[] arr) {
31 for (int i = 0; i ) {
32 System.out.print(arr[i] + " ");
33 }
34 }
35 /**
36 * 换位操作
37 * 1、返回值类型,void
38 * 2、参数列表int[] arr.int i,int j
39 *
40 * 如果某个方法,只针对本类使用,不想让其他类使用就可以定义成私有的
41 */
42 private static void swap(int[] arr,int i,int j) {
43 int temp = arr[i];
44 arr[i] = arr[j];
45 arr[j] = temp;
46 }
47 }
二分查找
1 public static void main(String[] args) {
2 int[] arr = {11,22,33,44,55,66,77};
3 System.out.println(getIndex(arr, 22));
4 System.out.println(getIndex(arr, 66));
5 System.out.println(getIndex(arr, 88));
6 }
7 /**
8 * 二分查找
9 * 1、返回值类型int
10 * 2、参数列表int[] arr,int value
11 *
12 */
13 public static int getIndex(int[] arr, int value) {
14 int min = 0;
15 int max = arr.length - 1;
16 int mid = (min + max) / 2;
17 //当中间值不等于要找的值,就开始循环查找
18 while (arr[mid] != value) {
19 //当中间值小于了要找的值
20 if (arr[mid] value) {
21 //最小的索引改变
22 min = mid + 1;
23 //当中间值大于了要找的值
24 }else if (arr[mid] > value) {
25 //最大的索引改变
26 max = mid - 1;
27 }
28 //无论最大还是最小改变,中间索引随之改变
29 mid = (min + max) / 2;
30 //如果最小索引大于了最大索引,就没有查找的可能性了
31 if (min > max) {
32 //返回-1
33 return -1;
34 }
35 }
36 return mid;
37 }
Arrays类的概述
Arrays类的成员方法
package com.array;
import java.util.Arrays;
public class Demo3 {
public static void main(String[] args) {
int[] arr = {33,66,44,55,11,22};
System.out.println(Arrays.toString(arr)); //数组转字符串
Arrays.sort(arr);
System.out.println(Arrays.toString(arr)); //排序
int[] arr2 = {11,22,33,44,55,66};
System.out.println(Arrays.binarySearch(arr2, 22));
System.out.println(Arrays.binarySearch(arr2, 66));
System.out.println(Arrays.binarySearch(arr2, 88)); //-插入点-1
}
}
上一篇:使用web创建监听器
下一篇:二维数组求平均值(指针的使用)