1、冒泡排序
代码实践:
package com.company;
import java.util.Arrays;
/**
* 冒泡排序
*/
public class Main {
public static void main(String[] args) {
int[] arr = {7, 6, 5, 4, 3};
System.out.println(Arrays.toString(arr));
for (int i=0;i<arr.length-1;i++){ //比较趟数
for (int j = 0; j < arr.length-1-i; j++) { //比上一次比较的趟数少一次
if (compare(arr[j], arr[j + 1]) > 0) {
int t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
System.out.println(Arrays.toString(arr));
}
public static int compare(int a, int b) {
//升序:a-b
return a - b;
// return b - a;//降序
}
}
2、选择排序
代码实践:
package com.company;
import java.util.Arrays;
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = {7, 6, 5, 4, 3};
String string = Arrays.toString(arr);
System.out.println("排序前 = " + string);
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[j]<arr[i]){
int tem=arr[i];
arr[i]=arr[j];
arr[j]=tem;
}
}
}
String string1 = Arrays.toString(arr);
System.out.println("选择排序后 = " + string1);
}
}
3、二分查找
原理分析:
代码实践
package com.company;
public class ArrayDemo1 {
public static void main(String[] args) {
int[] arr = {10, 14, 21, 38, 45, 47, 53, 81, 87, 99};
int index = binarySerach(arr, 87);
System.out.println(index);
}
private static int binarySerach(int[] arr, int number) {
int start =0;
int end =arr.length-1;
while (start<=end){
int min=(start+end)/2;
if (number==arr[min]){
return min;
}else if (number<arr[min]){
end=min-1;
}else if (number>arr[min]){
start=min+1;
}
}
return -1;
}
}