題目:
sort a linked list using insertion sort.
思路:
插入排序是一種o(n^2)複雜度的演算法,基本想法相信大家都比較了解,就是每次迴圈找到乙個元素在當前排好的結果中相對應的位置,然後插進去,經過n次迭代之後就得到排好序的結果了。了解了思路之後就是鍊錶的基本操作了,搜尋並進行相應的插入。時間複雜度是排序演算法的o(n^2),空間複雜度是o(1)。
/** * definition for singly-linked list.
* function listnode(val) */
/*** @param head
* @return */
var insertionsortlist = function
(head)
var temphead=new listnode(0),p=head,tp=null
;
while(p!=null
)
var tempnode1=tp.next;
var tempnode2=p.next;
tp.next=p;
p.next=tempnode1;
p=tempnode2;
}return
temphead.next;
};
插入排序 InsertionSort
插入排序insertionsort,引數是乙個陣列包含了n個待排序的數,輸入的各個數字是原地排序的 sorted in place 意即這些數字就是在陣列a中進行重新排序的,在任何時刻,至多只有其中的常數個數字是儲存在陣列之外的,當過程insertionsort執行完畢後,輸入陣列a中就包含了已排好...
插入排序 insertion sort
insertion sort 插入排序 適用於小規模的資料排序 時間複雜度 n 2 整體思路與玩牌是對手中撲克的排序方法類似 演算法描述 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,...
插入排序 Insertion sort
是一種簡單的排序方法。時間複雜度為o n 2 即n的平方。在資料量較小的情況下,是比較有效的排序方式。輸入 n個數 a1,a2,a3.an 輸出 輸入序列的乙個排序 要求 a 1 a 2 a n 思想 把序列分為2部分 已排序,未排序。每次從未排序中取乙個數,與已排序中的值比較,插入到合適的位置。p...