一、选择排序
升序排序:从第一个数组元素开始 ,到(arr.length-1)倒数第二个元素为止。依次与后边每个元素比较,大于后边的元素则交换顺序。
降序排序: 反之
for(int i = 0;i < arr.length - 1;i++){
for(int j = i +1;j< arr.length;j++){
if(arr[i]>arr[j]){
int tem =arr[i];
arr[i]= arr[j];
arr[j]= tem;
}
}
}
二、冒泡排序
升序排序:每次从第一个元素开始往后相邻元素依次比较 前面大于后面交换
降序排序:反之
for{int i= 0; i < arr.length;i++}{
for(int j = 0; j < arr.length - i;j++){
if(arr[j] > arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
三、二分查找
要求:可以使用二分查找法的数组必须是有序的数组(升序或降序)
设定中间索引获取到索引值与要查找的值作比较 大于查找的值在前面找 小于查找的值在后边找 再区间内重复设定中间值 知道找到位置 若查找不到 返回-1
代码:
pubic static int binnarySearch(int arr[] ,int num{
int start = 0;
int end = arr.length-1;
while(start<= end){
int middleIndex = (satrt+end)/2;
int middle = arr[middleIndex];
if(num>arr[middleIndex]){
start = middleIndex+1;
}else if(num
end = middleIndex-1;
}else{
return middleIndex;
}
}
return -1;
}