1、冒泡排序
package com.king.demo;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {1,99,2,3,16,100,97,65};
System.out.println("***************************排序前***************************");
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("***************************排序后***************************");
for(int i = 0;i<arr.length-1;i++) {
boolean flag = true;
for(int j = 0;j<arr.length-1-i;j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] =temp;
flag = false;
}
}
if(flag) {
break;
}
}
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}
2、选择排序
package com.king.demo;
public class SelectorSort {
public static void main(String[] args) {
int[] arr = {1,99,2,3,16,100,97,65};
System.out.println("***************************排序前***************************");
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
System.out.println("***************************排序后***************************");
for(int i = 0;i < arr.length-1;i++) {
//定义一个最小数索引
int min_index=i;//假定
for(int j=i+1;j<arr.length;j++) {
//比较
if(arr[j] < arr[min_index]) {
//更新最小数的索引
min_index = j;
}
}
//交换
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
for(int i = 0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
}
}
二分查找法
public class HalfSerch {
public static void main(String[] args) {
int[] arr = {3,7,19,38,55,88};
for (int i : arr) {
System.out.print(i+" ");
}
System.out.println();
System.out.println("请输入你要找的数字:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int index = search(arr, num);
if (index!=-1){
System.out.println("这个数的索引是:"+index+",值是:"+arr[index]);
}else {
System.out.println("没有这个数...");
}
}
private static int search(int[] arr, int key) {
if (arr.length<2){
return -1;
}
int left = 0;
int right = arr.length-1;
while (left<=right){
int mid = (left+right)/2;
if (arr[mid]==key){
return mid;
} else if (arr[mid] > key) {
right = mid - 1;
}else {
left = mid +1;
}
}
return -1;
}
}