選擇排序數組
class Demo {
public static void main(String[] args) {
//需求:指定一個int類型的數組,給必定元素,將元素從小到大進行排序。
//初始化一個數組
int[] arr = {7,3,9,12,6,2};
//選擇排序 : 效率過低比較的次數太多
for(int i = 0;i<arr.length;i++){
for(int j= 1 ; j<arr.length;j++){
if(arr[j-1]>arr[j]){
int temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;spa
}
}
}排序
//遍歷數組
for(int i=0;i<arr.length;i++){class
System.out.println(arr[i]);
}
效率
}
}遍歷
冒泡排序static
class Demo{
public static void main(String[] args) {
//需求:每次將數組中最大的元素把他移到最右邊去
int[] arr = {7,3,9,12,6,2};
//將最大的值移到最右邊
for(int i =0;i<arr.length-1;i++){while
for(int j=0;j<arr.length-1-i;j++){co
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1] = temp;
}
} background
二分法
class Demo{
public static void main(String[] args) {
//二分法 : 前提 : 數組要排序好
int[] arr = {1,2,3,4,5,6};
int num = 5;
int max = arr.length-1;
int min = 0;
int mid = (max + min) / 2;
while(true){
if(num > arr[mid]){
min = mid +1;
}else if (num < arr[mid]) {
max = mid-1;
}else {
System.out.println("找到了:"+mid);
break;
}
//沒有找到
if(min > max){
System.out.println("沒有找到");
break;
}
//從新設置中間值
mid = (max + min)/2;
}
}
}
}