1、分治法之快排:
static int[] array = { 1, 3, 56, 33, 765, 43, 7, 65, 56345, 76, 3453, 6465 }; public static void quickSort(int[] array, int begin, int end) { int middle = selectIndex(array, begin, end); if (begin < middle - 1) { quickSort(array, begin, middle - 1); } if (middle < end - 1) { quickSort(array, middle + 1, end); } } public static int selectIndex(int[] array, int start, int stop) { int middle = (start + stop) / 2; while (start < stop) { while (start < stop && array[start] < array[middle]) { start++; } if (array[start] >= array[middle]) { int temp = array[start]; array[start] = array[middle]; array[middle] = temp; middle = start; } while (start < stop && array[middle] < array[stop]) { stop--; } if (array[middle] >= array[stop]) { int temp = array[middle]; array[middle] = array[stop]; array[stop] = temp; middle = stop; } } return middle; }
分治法之归并排序:
分治法之汉诺塔问题(双层汉诺塔、三层汉诺塔):
大数据相乘
二分查找