排序方法:基礎的有選擇排序和氣泡排序,高階的有希爾排序、快速排序等。
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 空間複雜...