2016-06-11 46 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