有序数组二分查找实现:
public class BinarySearch{
public static int binarySearch(int[] array, int key) {
int leftArray = 0;
int rightArray = array.length;
while(leftArray < rightArray){
int midArray = leftArray + (rightArray - leftArray)/2;
if(key == array[midArray]){
return midArray;
}else if(key < array[midArray]){
rightArray = midArray;
}else{
leftArray = midArray + 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6,7,8,9};
int index1 = binarySearch(array,7);
System.out.println("7 的下标是:" + index1);
}
}
运行结果:
冒泡排序
import java.util.Arrays;
public class BubbleSort{
public static void bubbleSort(int[] array){
int tmp = 0;
for(int i=0; i<array.length-1; i++){
boolean isSwapped = false;
for(int j=0; j < array.length - i - 1; j++){
if(array[j] > array[j+1]) {
tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
isSwapped = true;
}
}
if(!isSwapped){
return;
}
}
}
public static void printArray(int[] array){
for(int i=0; i<array.length; i++){
System.out.printf("%d ",array[i]);
}
System.out.println();
}
public static void main(String[] args){
int[] randomArray = new int[]{ 3,5,2,12,3,56,75,32};
System.out.print("使用自定义方法打印数组: \t");
printArray(randomArray);
System.out.print("使用toString方法打印数组: \t");
System.out.println(Arrays.toString(randomArray));
bubbleSort(randomArray);
System.out.print("排序后的数组: \t\t\t");
System.out.println(Arrays.toString(randomArray));
}
}