NC70:单链表的选择排序
程序员文章站
2022-06-12 19:29:05
...
给定一个无序单链表,实现单链表的选择排序(按升序排序)。
输入:
[1,3,2,4,5]
输出:
{1,2,3,4,5}
什么是选择排序?
我实现的代码:
//数据自测可以通过,答案不通过,超时????
ListNode* helper(ListNode* head)
{
if(head==nullptr||head->next==nullptr)
return head;
ListNode* p=nullptr;
ListNode* q=nullptr;
ListNode* pmin=nullptr;
for(p=head;p!=nullptr;)
{
int mmin=INT_MAX;
for(q=p;q!=nullptr;)
{
if(q->val<mmin)
{
mmin=q->val;
pmin=q;
}
q=q->next;
}
if(pmin!=nullptr)
{
int tmp=pmin->val;
pmin->val=p->val;
p->val=tmp;
}
p=p->next;
}
return head;
}
数据自测可以通过,但是提交时间复杂度不能通过。