很有吸引力的一个问题!在线等! 我有一个CList链表每个节点是由几个结构组成的 我想通过某个结构中的两个元素对链表进行排序即:先由第一个元素进行排序如果第一个元素相同再通过第二个元素进行判断请问高手有这样的函数能实现吗?如果没有,什么样的算法好! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CList中存的是指针吗?如是,那:int nLen=List.GetSize();if(nLen>1){ int pArray=new int[nLen]; for(int i=0;i<nLen;i++) { pArray[i]=List.GetAt(i); } //对pArray进行排序 List.RemoveAll(); for(i=0;i<nLen;i++) { List.AddHead(pArray[i]); } delete [] pArray;------------------------------------------------排序可用堆,选择,快速都可以。 to cline :)可以给出算法的复杂度吗?谢谢! 堆: nlogn 2因为链表定位比较耗时,所以先缓存于数组。 不知还有别的算法? C语言库就有形成的呀,好象是qsort()这函数对任何类型都有效 隐式调用CreateThread问题 LoadLibrary 和 GetProcAddress Winsock的事件处理问题 对modem编程,遇到难题,关于RTS的!!!!!! 静态链接库中是不是就没有导出函数的概念了? dll中sharedataseg问题. 共享数据段.为什么我安装要求写了, 不行呢. 大家看看是不是定义有问题. 急!高分相送!InitInstance()之后? 请问一个CSemaphore 问题 CListCtrl的EditLabel问题 TreeCtrl 的 children 参数到底怎么回事 提问个人资料 请教一个常识问题2 CString变量是否有长度限制!
int nLen=List.GetSize();
if(nLen>1)
{
int pArray=new int[nLen];
for(int i=0;i<nLen;i++)
{
pArray[i]=List.GetAt(i);
}
//对pArray进行排序
List.RemoveAll(); for(i=0;i<nLen;i++)
{
List.AddHead(pArray[i]);
}
delete [] pArray;------------------------------------------------
排序可用堆,选择,快速都可以。
2
因为链表定位比较耗时,所以先缓存于数组。 不知还有别的算法?
这函数对任何类型都有效