python練習 插入排序

2021-10-08 19:29:05 字數 1535 閱讀 6218

插入排序,給出一條鍊錶,從頭開始遍歷,將每次遍歷的節點取出,插入到從此節點開始往前至第乙個節點之間合適的位置。例如一條鍊錶為4->2->1->3,現在要將它進行公升序排列,首先取出節點4,發現此時它的前方沒有比它要大的節點,因此節點4的位置不變。然後將第二個節點2取出,發現它的前乙個節點4比它大,因此將節點2插入到節點4之前,以此類推,將鍊錶進行公升序排列。簡要流程如下所示

問題描述

對鍊錶進行插入排序。

示例

輸入:4->2->1->3

輸出:1->2->3->4

思考

具體**如下

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

insertionsortlist

(self, head: listnode)

-> listnode:

sort_list = listnode(

-inf)

sort_list.

next

= head

current_node = head

sort_list_copy = sort_list

while current_node !=

none

:if current_node.val >= sort_list.val:

sort_list = sort_list.

next

current_node = sort_list.

next

continue

sort_list.

next

= current_node.

next

sort = sort_list_copy

while current_node.val >= sort.

next

.val:

sort = sort.

next

current_node.

next

= sort.

next

sort.

next

= current_node

current_node = sort_list.

next

return sort_list_copy.

next

python 插入排序

coding utf 8 def insertsort list list 4,1,9,13,34,26,10,7,4 m len list 元素個數 for i in range m 對每乙個元素 min i 當前元素索引 for j in range i 1,m 遍歷後面的所有元素,尋找最小的值...

Python 插入排序

本博文示例為自己指定一定範圍,生成指定個數的隨機數,再對生成的隨機數進行排序,並記錄排序所花時間。生成指定範圍 指定個數隨機數 import random def generate point range gene size,min val,max val num list i 0 while i ...

Python 插入排序

把第乙個數固定,然後將其它數插入,小的放前面。備份這個後續插入的數,然後將這個數和前面的數作比較,比前面的數小,就將前面的數後移。這樣相當於前面的數就挪出乙個空,如果再往前沒有比它小的了,就把開始備份好的數填進去。插入排序,穩定,平均和複雜都是o n2 o n 2 def insert sort l...