模糊排序問題(Fuzzy sort)

2022-08-03 17:39:13 字數 785 閱讀 6186

clrs problem 7-6  問題如下

考慮這樣的一種排序問題,即無法準確地知道待排序的各個數字到底是多少。對於其中的每個數字,我們只知道它落在實軸上的某個區間內。亦即,給定的是 n個形如[ai, bi]的閉區間,其中ai

<= bi。演算法的目標是對這些區間進行模糊排序(fuzzy-sort),亦即,產生各區間的乙個排列1, i2, ..., in>,使得存在乙個cj屬於區間[aij, bij],滿足c1

<= c2

<= ... <= cn。

a) 為n個區間的模糊排序設計乙個演算法。你的演算法應該具有演算法的一般結構,它可以快速排序左部端點(即各ai),也要能充分利用重疊區間來改善執行時間。(隨著各區間重疊得越來越多,對各區間進行模糊排序的問題會變得越來越容易。你的演算法應能充分利用這種重疊。)

b) 證明:在一般情況下,你的演算法的期望執行時間為θ(nlgn),但當所有的區間都重疊時,期望的執行時間為θ(n)(亦即,當存在乙個值x,使得對所有的 i,都有x∈[ai, bi])。你的演算法不應顯式地檢查這種情況,而是應隨著重疊量的增加,效能自然地有所改善。

讀一遍題目居然沒讀懂什麼意思~ 

其實就是對區間進行排序, 排序的標準 只要保證當 「大區間」中存在元素大於「小區間」 就ok了。

當兩個區間不相交時, 這樣的「大小」關係可以簡單的通過比較端點值確定,  但當有交集時,  怎麼辦呢

相交的時候 在交集中任意取兩個不同的元素都可以說是 來自兩個區間的, 因此相交時候倆區間可以是任意大小,也就是說 相交的區間之間不必排序,以此來降低時間開銷。

下面有個完整的演算法描述和實現

SQL模糊查詢排序問題

drop table if exists t user create table t user id varchar 20 not null,name varchar 20 default null,password varchar 20 default null,primary key id en...

排序問題,限定性查詢,模糊查詢

第三章 1.排序問題 預設排序規則 按照物理儲存順序。指定排序規則 order by關鍵字 位置 出現在select語句的最後邊。語法 select from order by 字段 排序規則 字段用來定義要根據哪個字段進行排序。排序規則 1 公升序排列 從小到大 asc 2 降序排列 從大到小 d...

專案 模糊查詢 排序

專案需求 查詢上課班資訊,把班名排序,漢字英文按照首字母英文本母表排序,數字放在漢字 英文前 思路 直接用sql查詢出資料,然後排序 select t.teachclass name as teachclassname,t.teachclass code as teachclasscode,t.co...