我想的qsort陣列的特定列,但必須相應 移動其它元件例如如何排序數組的特定列?
UNSORTED ARRAY
40 2
30 6
20 1
REQUIRED SORTED ARRAY
20 1
30 6
40 2
如果它不能與的qsort進行排序,那麼請提出了一些方法,該方法是有效的,沒有按」 t就像qsort一樣需要時間。 請和謝謝你。
我想的qsort陣列的特定列,但必須相應 移動其它元件例如如何排序數組的特定列?
UNSORTED ARRAY
40 2
30 6
20 1
REQUIRED SORTED ARRAY
20 1
30 6
40 2
如果它不能與的qsort進行排序,那麼請提出了一些方法,該方法是有效的,沒有按」 t就像qsort一樣需要時間。 請和謝謝你。
標準的qsort程序總是排序陣列線,你定義一個回調比較函數(並傳遞它的地址),這完全是你的控制之下。
在該回調函數中,qsort會向您傳遞兩個元素(行)並要求您進行比較,並相應地返回1,0,-1以獲得更大,相等,更小的值。你可以在那個代碼中只比較你想排序的列(或者對你想要的任何東西進行處理),並且qsort將總是對整個數組行進行排序。
這個怎麼樣:你有一個struct
鍵和值對,建立這個struct
的數組,根據需要填充元素,然後使用Aganju建議的回調函數。因此,您將有一排排排序的struct
。
對不起但我不明白你的意思是說什麼? – user5910213
爲什麼不寫一些代碼? –
我做了插入排序,它工作正常,但時間複雜度很大。 – user5910213
lyk如果你有10^5個元素,那麼它不會在1秒內完成。 – user5910213