一、歸并排序 二、快速排序

線性排序算法的時(shí)間復(fù)雜度比較低,適用場景比較特殊。所以如果要寫一個(gè)通用的排序函數(shù),不能選擇線性排序算法。 如果對(duì)小規(guī)模數(shù)據(jù)進(jìn)行排序,可以選擇時(shí)間復(fù)雜度是 O() 的算法;如果...
今天我會(huì)繼續(xù)給你講四個(gè)復(fù)雜度分析方面的知識(shí)點(diǎn),最好情況時(shí)間復(fù)雜度(best case time complexity)、最壞情況時(shí)間復(fù)雜度(worst case time c...
1. 復(fù)雜度分析是整個(gè)算法學(xué)習(xí)的精髓,只要掌握了它,數(shù)據(jù)結(jié)構(gòu)和算法的內(nèi)容基本上就掌握了一半 2. 我們都知道,數(shù)據(jù)結(jié)構(gòu)和算法本身解決的是“快”和“省”的問題,即如何讓代碼運(yùn)行...
10 個(gè)數(shù)據(jù)結(jié)構(gòu):數(shù)組、鏈表、棧、隊(duì)列、散列表、二叉樹、堆、跳表、圖、Trie 樹; 10 個(gè)算法:遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分治算法、回溯算法、動(dòng)態(tài)規(guī)...
在實(shí)際生產(chǎn)中,關(guān)于 join 語句使用的問題,一般會(huì)集中在以下兩類: 我們 DBA 不讓使用 join,使用 join 有什么問題呢? 如果有兩個(gè)大小不同的表做 join,應(yīng)...
需要說明的是,如果 MySQL 數(shù)據(jù)庫本身就有很大的壓力,導(dǎo)致數(shù)據(jù)庫服務(wù)器 CPU 占用率很高或 ioutil(IO 利用率)很高,這種情況下所有語句的執(zhí)行都有可能變慢,不屬...
今天我給你舉了三個(gè)例子,其實(shí)是在說同一件事兒,即: 對(duì)索引字段做函數(shù)操作,可能會(huì)破壞索引值的有序性,因此優(yōu)化器就決定放棄走樹搜索功能。 第二個(gè)例子是隱式類型轉(zhuǎn)換,第三個(gè)例子是...
注意看底部評(píng)論 感謝極客時(shí)間:https://time.geekbang.org/column/article/73479
在兩階段提交的不同瞬間,MySQL 如果發(fā)生異常重啟,是怎么保證數(shù)據(jù)完整性的? https://time.geekbang.org/column/article/73161
count(*) 的實(shí)現(xiàn)方式 你首先要明確的是,在不同的 MySQL 引擎中,count(*) 有不同的實(shí)現(xiàn)方式。 MyISAM 引擎把一個(gè)表的總行數(shù)存在了磁盤上,因此執(zhí)行 ...
這里,我們還是針對(duì) MySQL 中應(yīng)用最廣泛的 InnoDB 引擎展開討論。一個(gè) InnoDB 表包含兩部分,即:表結(jié)構(gòu)定義和數(shù)據(jù)。在 MySQL 8.0 版本以前,表結(jié)構(gòu)是...
當(dāng)內(nèi)存數(shù)據(jù)頁跟磁盤數(shù)據(jù)頁內(nèi)容不一致的時(shí)候,我們稱這個(gè)內(nèi)存頁為“臟頁”。內(nèi)存數(shù)據(jù)寫入到磁盤后,內(nèi)存和磁盤上的數(shù)據(jù)頁的內(nèi)容就一致了,稱為“干凈頁” 回到文章開頭的問題,你不難想象...
MySQL 是支持前綴索引的,也就是說,你可以定義字符串的一部分作為索引。默認(rèn)地,如果你創(chuàng)建索引的語句不指定前綴長度,那么索引就會(huì)包含整個(gè)字符串。 1、直接創(chuàng)建完整索引,這樣...
優(yōu)化器的邏輯 優(yōu)化器沒有選擇正確的索引,force index 起到了“矯正”的作用。 糾正索引:analyze table 表名 感謝極客時(shí)間:https://time.g...
問題:如果某次寫入使用了 change buffer 機(jī)制,之后主機(jī)異常重啟,是否會(huì)丟失 change buffer 和數(shù)據(jù) ? 這個(gè)問題的答案是不會(huì)丟失,留言區(qū)的很多同學(xué)都...