04陣列排序和折半查詢

2021-09-01 22:59:52 字數 1615 閱讀 2988

排序方法:基礎的有選擇排序和氣泡排序,高階的有希爾排序、快速排序等。

1.選擇排序

/*

選擇排序,以公升序為例

*/class arraysortdemo

; selectsort(arr);

printarray(arr);

"hello world!");

} public static void selectsort(int arr)

}} }

//預設arr不為空,否則有安全問題

public static void printarray(int arr)

");break;

}system.out.print(arr[i] + ",");

} arr[arr.length - 1] + "}");

}}

2.氣泡排序

/*

氣泡排序,以公升序為例

*/class arraysortdemo

; bubblesort(arr);

printarray(arr);

"hello world!");

} public static void bubblesort(int arr)

}} }

//預設arr不為空,否則有安全問題

public static void printarray(int arr)

");break;

}system.out.print(arr[i] + ",");

} arr[arr.length - 1] + "}");

}}

3.折半查詢

/*

折半查詢

*/class binarysearchdemo

; int key = 8;

bubblesort(arr);

printarray(arr);

int index = binarysearch(arr, key);

system.out.println("元素" + key + "在陣列中的索引值為:" + index);

"hello world!"); }

//折半查詢

public static int binarysearch(int arr, int key)

//迴圈完沒找到,返回不存在

return -1;

/*第二種方法

mid = (low + high) >> 1;

while(key != arr[mid])

return mid;

*/

} //氣泡排序

public static void bubblesort(int arr)

}} }

//預設arr不為空,否則有安全問題

public static void printarray(int arr)

");break;

}system.out.print(arr[i] + ",");

} arr[arr.length - 1] + "}");

}}

陣列的排序,反轉,折半查詢,插入

陣列的使用中要注意 1.下標越界問題 2.運算元組時候,先要分析,有個整體的思路。一趟快速排序的演算法是 1 設定兩個變數i j,排序開始的時候 i 0,j n 1 2 以第乙個陣列元素作為關鍵資料,賦值給key,即 key a 0 3 從j開始向前搜尋,即由後開始向前搜尋 j j 1 找到第乙個小...

選擇 氣泡排序,折半查詢

include void selectsort int num,int length void swap int num,int i int j void butttlesort int num,int length int main int argc,const char argv 計算陣列的長度...

各類排序以及折半查詢

時間複雜度 o n 2 空間複雜度 o 1 穩定 越有序查詢速度越快 o n void insert sort int arr,int len else arr j 1 tmp 也稱縮小增量排序,是直接插入排序演算法的一種更高效的改進版本 分組 直接插入 時間複雜度 o n 1.3 1.5 空間複雜...