快取優化查詢
const fs=require('fs');//比較字元基類大小 相同返回0,str1>str2 返回1,str1function
str_compare(str1,str2)
else
if(str1.charcodeat(index)else}}
if(dis===0&&indexreturn
dis;}//
查詢function
find(str,hassortarr,callback)
else
if(ri===0)
else
const li=callback(str,hassortarr[0]);
if(li===-1)
else
if(li===0)
else
while(r-l>0)
else
if(order===-1)
else}}
return [(l+r)>>1,index]}//
輸入排名函式,返回-1,0,1
function
sort(list,compare)
}return
hassortarr;
}let cachearr=
const cachelen=10;
//用快取優化查詢
function
getvalbycache(obj,callback)
}if(len===keys.length)
}for(let i=0;i)
else
) }
}//清理
if(len>0&&cachearr.length>cachelen)
else
})cachearr.splice(cachelen,cachearr.length-cachelen)
}}/*
demo
檔案內容排名演算法,輸入排名函式,返回排名後的檔名 */
const dir=__dirname+'/data/';
const list=fs.readdirsync(dir);
const hassortarr=sort(list,function
(name1,name2)
obj[name1]=null
; obj[name2]=null
; getvalbycache(obj,
function
(name1) )
const cont1=obj[name1];
const cont2=obj[name2]
return
str_compare(cont1,cont2)
})console.log(hassortarr)
關於排名演算法的隨想
問題 有n個玩家的分數,要對前k個最高分玩家進行排名。用乙個最大堆排序就能解決。根據演算法導論 maxheapify heap,i 中heap i 的左右節點都是最大堆,函式作用是對下標為i的節點進行堆形態的維護。時間複雜度為o lgn buildmaxheap heap 中是對乙個無序陣列進行最大...
計算並列排名的演算法
最近在搞乙個統計,需要計算學生的成績排名,而且還需要並列的排名,可能這麼說大家都不理解啥叫並列排名,舉個例子 小明 100分 小紅100分 小芳90分 小李80分 小孫80分 小蘭70分 那麼最終的排名應該是 小明 1,小紅 1,小芳 3,小李4,小孫4,小蘭6。public static void...
sql SQL Server 中的排名函式
前言 正文使用到的表原始資料 select row number over order by pk as number pk,orderid,bopid,stepqueue from dbo.plm bop ppr where orderid 100000003921 03 返回結果集分割槽內行的序...