2016-06-11 122 views
-4

我想的qsort陣列的特定列,但必須相應 移動其它元件例如如何排序數組的特定列?

UNSORTED ARRAY 

40 2 
30 6 
20 1 

REQUIRED SORTED ARRAY 

20 1 
30 6 
40 2 

如果它不能與的qsort進行排序,那麼請提出了一些方法,該方法是有效的,沒有按」 t就像qsort一樣需要時間。 請和謝謝你。

+0

爲什麼不寫一些代碼? –

+0

我做了插入排序,它工作正常,但時間複雜度很大。 – user5910213

+0

lyk如果你有10^5個元素,那麼它不會在1秒內完成。 – user5910213

回答

1

標準的qsort程序總是排序陣列,你定義一個回調比較函數(並傳遞它的地址),這完全是你的控制之下。

在該回調函數中,qsort會向您傳遞兩個元素(行)並要求您進行比較,並相應地返回1,0,-1以獲得更大,相等,更小的值。你可以在那個代碼中只比較你想排序的列(或者對你想要的任何東西進行處理),並且qsort將總是對整個數組行進行排序。

0

這個怎麼樣:你有一個struct鍵和值對,建立這個struct的數組,根據需要填充元素,然後使用Aganju建議的回調函數。因此,您將有一排排排序的struct

+0

對不起但我不明白你的意思是說什麼? – user5910213