給定乙個無序單鏈表,實現單鏈表的選擇排序(按公升序排序)。
**注釋挺詳細,直接上**!
#include #includestruct
node;
void printlist(struct node *head)
}struct node * selectsort(struct node *head)
/*選擇排序
在原煉表中一輪輪地找最大的那個結點,找到之後就把它從原煉表中抽出來用頭插法加到新的鍊錶中。
需要注意這個最大的結點是否為頭結點
*/ pret=t;
t=t->next;
}//2、讓這個結點離開原鍊錶
if(max==head)//
如果找到的結點是第乙個結點
head=head->next;//
讓頭指標向後移一位就行
else
premax->next=max->next;
//3、把此結點頭插法插入新鍊錶
max->next=head1;
head1=max;
}return
head1;
}int
main()
else
q=p;
}printlist(selectsort(head));
}
單鏈表的排序 選擇排序
雖然鍊錶排序沒有多大的用處,但是還是可以看看.經典演算法 單鏈表選擇排序第一種 include include typedef struct node linklist,node linklist creat int n r next null return head void output lin...
016 單鏈表的選擇排序
package com.my.util 單向鍊錶節點 public class singlenode package com.my.suanfa import com.my.util.singlenode 單鏈表的選擇排序 時間複雜度o n 2 額外空間複雜度o 1 時間複雜度與選擇排序一樣都是o ...
單鏈表之排序單鏈表
package list public class sortedsinglylist extends singlylist 將values陣列中的所有物件按值大小插入 public sortedsinglylist t values 過載深拷貝,由單鏈表構建排序單鏈表 public sortedsi...