冒泡排序
原理:相邻的数据两两比较,小的放前面,大的放后面
java
int[] arr={3,5,2,1,4}
for(int i=0;i<arr.length-1;i++){
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;
}
}
}
选择排序
升序原理:拿当前元素和其后面所有元素都进行比较,如果有比当前元素小的那么就喝当前元素进行交换位置,直到所有元素全部比较完
java
int[] arr={4,1,5,3,2}
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]<arr[j]{
int temp=arr[j];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
二分查找法
前提:数组中元素需要有序
java
public static boolean searchKey(int[] arr,int key){
int min=0;
int max=arr.length-1;
int mid;
boolean flag=false;
while(min<=max){
mid=(min+max)/2;
int num=arr[mid];
if(num==key){
flag=true;
break;
}else if(num>key){
max=mid-1;
}else if(num<key){
min=mid+1;
}
}
return flag;
}