氣泡排序究極奧義

2021-09-28 22:42:32 字數 795 閱讀 1473

原理:兩個for迴圈,外層for迴圈控制比較輪數(趟數),內層for迴圈比較每一輪中的前後兩項(次數),內層for迴圈每比較一輪就產生乙個當前迴圈的最大值

// 由於個別陣列本身的排列的特殊性 導致根本不需要將所有的趟數都排列完才可以 如下陣列 只需要排列一次即可

var arr = [2, 1, 3, 4, 5, 6, 7, 8];

問: 如果知道排好了呢

答:如果整個一趟下來 都沒有發生過一次交換 那麼意味著已經排列好了

假設成立法

1.先假設已經排列好了

2.在判斷裡面將flag重置

3.當內層for迴圈結束之後 在去判斷flag 如果flag依舊沒有發生改變 意味著沒有發生交換

var arr =[2

,1,3

,4,5

,6,7

,8];

var tang =0;

var ci =0;

for(

var j =

0; j < arr.length -

1; j++)}

if(flag ===

'沒有交換')}

console.

log(arr)

;// [1, 2, 3, 4, 5, 6, 7, 8]

console.

log(tang, ci)

;//2 13 比較了兩趟,13次

KMP演算法 究極版

翁振宇 字串匹配 kmp演算法 演算法實現一 字串匹配的關鍵在於減少匹配次數。而kmp演算法的核心思想就是匹配陣列,根據匹配陣列的值來排程匹配字串的索引減少多餘的排程。匹配陣列就是字串具有的相同字首 字尾的最大值。比如對於字串 ababacbbb 有 ta baba cbbb 0next 10 01...

究極卡常神技

return x x p pchar buf 1 22 out 1 22 p1 buf,p2 buf ll p3 1,ff 0 define getchar p1 p2 p2 p1 buf fread buf,1,1 21,stdin p1 p2 eof p1 inline void flush i...

Mysql優化 究極終章

我們的sql和索引的優化大概就這麼多,然後我們再來看一下表結構的優化是怎麼樣的。首先我們需要選擇最合適的資料型別,那麼什麼叫合適呢?主要有4點 第一,可以存在我們字段資料的最小的資料型別。第二,如果可以使用int代替varchar等資料型別,最好用int,因為int的處理比varchar等資料型別的...