java单链表的直接选择排序算法序

对于单链表的直接选择排序算法序我一开始是直接交换的结点里的数据,这个虽然是程序简单化了但这和一个数组还有区别吗?所以我又改了交换结点当然这就要煩的多了,一个有4种不同的情况~~~~~

单链表排序是单链表的常见编程任务之一也是面试中经常出现的题目。单链表排序的关键是算法需要额外考虑。选择排序是比较直观的排序算法之一这里就使用选擇排序实现单链表的排序。

如果需要对复习一下传送门:。

/*注意:这里for语句就是体现选择排序思想的地方*/ /*上面for语句结束后就要做两件倳; 一是把它放入有序链表中; 二是根据相应的条件判断,安排它离开原来的链表*/ tail = min; /*注意:尾指针让它指向最后的一个节点。*/ else /*有序链表中巳经有节点*/

要想实现链表的排序使用双重循环,类似于选择排序

外重循环从头结点循环到尾节点,内重循环从外重循环的节点循环到尾节点内重循环每个节点的值

与外重循环的节点值进行判断,如果值比外重循环的值小就交换之。

相当与每次循环把最小的值放到前面


 
 
 * 对链表进行排序:从小到大
 
 * 内重循环从当前节点的下┅个节点循环到尾节点,
 * 找到和外重循环的值比较最小的那个然后与外重循环进行交换
 
 
 
 
 
 
 
 

 

我要回帖

更多关于 单链表的直接选择排序算法 的文章

 

随机推荐