java 鍊錶排序

2021-07-30 18:41:20 字數 1016 閱讀 9048

題目描述:sort a linked list using insertion sort.

使用插入排序對鍊錶進行排序

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

}

【思路】:使用插入排序

插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為o(n^2)。是穩定的排序方法。插入演算法把要排序的陣列分成兩部分:第一部分包含了這個陣列的所有元素,但將最後乙個元素除外(讓陣列多乙個空間才有插入的位置),而第二部分就只包含這乙個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。

插入排序的基本思想是:每步將乙個待排序的紀錄,按其關鍵碼值的大小插入前面已經排序的檔案中適當位置上,直到全部插入完為止。

listnode fakenode=new listnode(-1);  

fakenode.next=head;

if(head==null)

return

null;

listnode cur=head.next;//從第二個節點開始遍歷

listnode pre=head;//排好序的最後乙個節點

while(cur!=null)

//進行插入

temp.next=cur;

cur.next=cur2;

pre.next=nextnode;

//繼續遍歷下乙個節點

cur=nextnode;

} else

} return fakenode.next;

//**是參考自

鍊錶的氣泡排序 Java

鍊錶的氣泡排序 思路一 1 交換兩個節點的值 建議使用此種交換元素方式,簡單易行 思路二 2 交換兩個節點的指標 package com.my.test.datastructure.linkedlist 鍊錶的氣泡排序 思路一 1 交換兩個節點的值 思路二 2 交換兩個節點的指標 public cl...

鍊錶 排序鍊錶

樂扣原題 definition for singly linked list.public class listnode class solution 將鍊錶轉化為陣列 listlist new arraylist while null head 陣列遞增排序 collections.sort li...

Java 鍊錶

鍊錶結點 package com.darren.test.datastructure 鍊錶節點 author darren.zhang public class link public int getvalue public void setvalue int value public link g...