数组的简单操作
冒泡排序法
public class Demo3 {
public static void main(String[] args) {
int[] arr = { 4, 50, 8, 9, 88, 77, 99, 51, 25 };
int max = arr[0];
int min = arr[0];
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
if (min > arr[i]) {
min = arr[i];
}
}
System.out.println(max + " " + min);
sort(arr);
print(arr);
}
public static void sort(int[] a) {
/**
* 对传入的int型数组完成排序,对原数组进行排序
* 排序算法: 1.冒泡 2.插入 3.选择
*/
for (int j = 0; j < a.length - 1; j++) {
for (int i = 0; i < a.length - 1 - j; i++) {
if (a[i] > a[i + 1]) {
a[i] = a[i] ^ a[i + 1];
a[i + 1] = a[i] ^ a[i + 1];
a[i] = a[i] ^ a[i + 1];
}
}
}
}
public static void print(int[] a) {
for (int num : a) {
System.out.print(num + " ");
}
}
}
顺序查找
public static int search(int[] a, int num) {
for (int i = 0; i < a.length; i++) {
if (num == a[i]) {
return i;
}
}
return -1;
}
}
二分查找
public class Demo5 {
public static void main(String[] args) {
int[] a = { 4, -50, 8, 9, 88, -20, 77, 99, 51, 25 };
sort(a);
search(a, 88);
}
public static void sort(int[] a) {
/**
* 对传入的int型数组完成排序,对原数组进行排序 排序算法: 1.冒泡 2.插入 3.选择
*/
for (int j = 0; j < a.length - 1; j++) {
for (int i = 0; i < a.length - 1 - j; i++) {
if (a[i] > a[i + 1]) {
a[i] = a[i] ^ a[i + 1];
a[i + 1] = a[i] ^ a[i + 1];
a[i] = a[i] ^ a[i + 1];
}
}
}
}
public static void search(int[] a, int num) {
int minIndex = 0;
int maxIndex = a.length - 1;
for (; minIndex <= maxIndex;) {
int midIndex = (minIndex + maxIndex) / 2;
if (num == a[midIndex]) {
System.out.println("找到了");
break;
} else if (num > a[midIndex]) {
minIndex = midIndex + 1;
} else {
maxIndex = midIndex - 1;
}
}
if (minIndex > maxIndex) {
System.out.println("没找到");
}
}
}
使用Arrays工具类
import java.util.Arrays;
public class Demo6 {
public static void main(String[] args) {
int[] a = { 4, -50, 8, 9, 88, -20, 77, 99, 51, 25 };
Arrays.sort(a);
int index = Arrays.binarySearch(a, 4);
Arrays.sort(a, 0, 5);
System.out.println(Arrays.toString(a));
System.out.println(index);
}
}