選擇排序選擇的是最大或者最小數的下標
public int[] selectSort(int[] arr) {
for(int i=0;i<arr.length;i++) {
int min = i;
for(int j=i+1;j<arr.length;j++) {
if(arr[min]>arr[j]) {
min = j;
}
}
if(min!=i) {
int temp = arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
return arr;
}
插入排序是插入已經排序好的數組
public int[] insertSort(int[] arr) {
for(int i=1;i<arr.length;i++) {
int temp = arr[i];
int index = 0;
for(int j=i;j>0;j--) {
if(arr[j]<arr[j-1]) {
arr[j] = arr[j-1];
index = j-1;
}else {
break;
}
arr[index] = temp;
}
}
return arr;
}
二分查找查找有序的數組
public int binarySearch(int[] arr,int a){
int strat = 0;
int end = arr.length-1;
while(strat<=end){
int middle = (strat+end)>>>1;
if(a==arr[middle]){
return middle;
}else if(a<arr[middle]){
end = middle-1;
}else {
strat = middle+1;
}
}
return -1;
}