摘要:
1.B-Tree索引例子CREATE TABLE `test`.`student` ( `name` VARCHAR(45) NULL , `dob` DATE NULL , `desc` VARCHAR(45) NULL , INDEX `btree` USING BTREE (`name` ASC, `dob` ASC, `desc` ASC) )ENGINE = MyISAMDEFAULT CHARACTER SET = utf8COLLATE = utf8_general_ci;BTree索引起作用的情况1)匹配全名:例如,可以帮助查找 name = "Jack" 阅读全文
摘要:
1 <?php 2 #树节点 3 class Node { 4 public $lc = null; #左孩子 5 public $rc = null; #右孩子 6 public $val; 7 8 public function __construct($val) { 9 $this->val = $val;10 }11 }12 13 #先序遍历14 function preTraverse(Node $ro... 阅读全文
摘要:
二分查找需要数组有序,效率为O(logn) 1 <?php 2 #二分查找 3 function binarySearch(Array $arr, $target) { 4 $low = 0; 5 $high = count($arr) - 1; 6 7 while($low <= $high) { 8 $mid = floor(($low + $high) / 2); 9 #找到元素10 if($arr[$mid] == $target) ... 阅读全文
摘要:
合并排序是稳定排序,平均效率为O(nlogn),需要的辅助空间是O(n) 1 <?php 2 #归并排序 3 #@param $arr 待排序数组 4 #@param $from 排序的起始坐标 5 #@param $end 排序的结束坐标 6 function mergeSort(&$arr, $from, $end) { 7 #切分数组直到数组元素只剩下一个 8 if($from < $end) { 9 $mid = floor(($from + $end) ... 阅读全文
摘要:
快排平均效率O(nlogn),最好情况O(nlogn),最坏情况是当数组有序时,退化成O(n^2) 1 <?php 2 #快速排序 3 #@param $arr 待排序数组 4 #@param $start 排序的开始坐标 5 #@param $end 排序数组的结束坐标 6 function quickSort(Array &$arr, $start, $end) { 7 $low = $start; 8 $high = $end; 9 10 #同时移动low和high,... 阅读全文
摘要:
堆排序平均效率,最好效率,最坏效率均为O(nlogn) 1 <?php 2 #堆排序 3 function heapSort(&$arr) { 4 #初始化大顶堆 5 initHeap($arr, 0, count($arr) - 1); 6 7 #开始交换首尾节点,并每次减少一个末尾节点再调整堆,直到剩下一个元素 8 for($end = count($arr) - 1; $end > 0; $end--) { 9 $temp = $arr[0];10 ... 阅读全文
摘要:
直接选择排序平均效率,最好情况,最坏情况均为O(n^2) 1 <?php 2 #简单选择排序 3 function selectSort(Array $arr) { 4 $len = count($arr); 5 for($i = 0; $i < $len; $i++) { #一共进行$len轮查找 6 $minInx = $i; 7 for($j = $i; $j < $len; $j++) { #每轮从第$j个元素开始,找出一个最小的元素,并和第$j个元素交换位置 8 ... 阅读全文
摘要:
使用绝对路径读取,就绝对不会出错程序代码如下,这个类是BookDaoTest 1 String appContextPath = BookDaoTest.class.getClassLoader().getResource("").getPath() + "../"; 2 File file = new File(appContextPath); 3 String abPath = null; 4 try { 5 abPath = file.getCanonicalPath()... 阅读全文
摘要:
编码的种类SHOW VBRIABLES LIKE '%character%';1) character_set_client : MySQL Server 假定client传输数据过来的时候的编码2) character_set_connection: Server收到SQL语句时,将其转换成的编码3) character_set_results: Server在返回数据给客户端时,会将数据转成这个编码4) character_set_system: 元数据编码(表名, 列名等)5) character_set_server, character_set_database, c 阅读全文
摘要:
希尔排序平均时间复杂度O(n^1.3),最好情况O(n),最坏情况O(n^2) 1 <?php 2 #希尔排序 3 function shellSort(Array $arr) { 4 $k = initStep(count($arr)); 5 $step = pow(2, $k) - 1; 6 #根据步长进行多次插入排序,依次减少步长, 7 for(;$step >= 1; $step = pow(2, --$k) - 1) { 8 $arr = insertSort($arr, $ste... 阅读全文