資料結構的排序中為什麼關鍵字會重複?

時間 2021-06-07 13:36:04

1樓:James Yin

因為查詢可以有多種策略,比如:查全部(字串匹配 findall ),第乙個/最後乙個(stl lower_bound/upper_bound),等等。

另外,如果排序演算法不允許重複,那對元素可重複的序列要怎麼排序呢?!

題主說的唯一匹配,沒理解錯的話應該指map類資料結構,比如二叉查詢樹

2樓:孫寒泊

大概能理解你的意思,感覺你的表述有問題,關鍵字在這裡應該應用不恰當。

關鍵原因在於排序的元素可能只是某個object的一部分給你取個例子吧,平面上有四個點,座標分別為(0,0),(0,1),(1,0),(1,1)

讓你給出先從下到上,再從左到右對這四個點排序,如果是穩定的,你就可以先對y元素做公升序排,再對x元素公升序排,(由於是穩定的,對x元素公升序排的時候不會對x相同時y的順序有影響,所以排序出來的結果是爭取的)

反之,如果不穩定,對x排序就有可能對y排序影響

3樓:Fortuna丶i

穩定排序和不穩定排序的具體哪種方法已經記不清了,不過排序是存在關鍵字重複的問題的,比如 1,2,2,3,可總體的順序是算符合「公升序=不降序或者降序=不公升序」(個人理解)的總體順序的,總之不會出現逆序的。

在C 11中,auto關鍵字的大量使用,會影響編譯速度嗎?

原子筆 沒有測試就別隨便下結論或者杞人憂天吧。編譯器在處理XX a b時,不管XX是auto還是非auto 一樣要去檢視b的型別的,並且需要確認可以拷貝構造。所以理論上來講只會減少編譯時間,包括非自定義型別也類似。 Premature optimization is the root of all ...

c中struct 為什麼可以在資料結構這樣用?

是的,巢狀 指標型別是沒問題的。在C中,各種型別的指標本身只是乙個位址值,長度都是一樣的。但是只知道位址值你是沒法確定往後多少bit是你真正有效的資料範圍,所以指標就要加型別來確定往後取得範圍。所以你的struct裡面那個巢狀的東西只是乙個位址不是struct結構本身。到這裡你的編譯器是可以確認你整...

C 和 C 的 volatile 關鍵字為什麼給程式設計者造成了如此大的誤解?

望山 我看題主的誤解也不小。volatile關鍵字提出時候那個年代,記憶體發生CPU無法預知的意外變化的主要原因是這個位址對應的是外設暫存器,但並非只有這一種情況。多CPU或者多核心爭用記憶體,還有另外答主說的ISR裡面改了記憶體,也是屬於volatile需要發揮作用的情況。這個關鍵字就是用來阻止編...