美文网首页
2018-11-10

2018-11-10

作者: pythonpy | 来源:发表于2018-11-10 11:00 被阅读0次

147. Insertion Sort List

Sort a linked list using insertion sort.

A graphical example of insertion sort. The partial sorted list (black) initially contains only the first element in the list.

With each iteration one element (red) is removed from the input data and inserted in-place into the sorted list

Algorithm of Insertion Sort:

Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list.

At each iteration, insertion sort removes one element from the input data, finds the location it belongs within the sorted list, and inserts it there.

It repeats until no input elements remain.

Example 1:

            Input:4->2->1->3

            Output:1->2->3->4

Example 2:

            Input:-1->5->3->4->0

            Output:-1->0->3->4->5

分析:这道题目主要是要求我们对链表进行插入排序,题意要求非常简单,我采用的是数组版插入排序思路,只是在插入的时候,由于链表与数组的差异,我是从链表投开始进行插入判断,再解决本题的时候,发生了超时的状况,思考久久,意外在代码中去掉了一个else(注释的地方)后竟然通过了,从本题中我学习到其实else也是会让程序变慢的(虽然以前也知道,实际第一次这么尝试),加深了对编程这一行的认识!!!

但是不足之处是效率较低,别人都是先获取数据进行排序,然后构建新的链表,没的说,自己太菜了,以后还是要多多努力!

# Definition for singly-linked list.

# class ListNode:

#    def __init__(self, x):

#        self.val = x

#        self.next = None

class Solution:

    def insertionSortList(self, head):

        """

        :type head: ListNode

        :rtype: ListNode

        """

        if head==None or head.next==None:

            return head

        curhead = head

        cur = head.next

        tempNode = head

        while cur!=None:

            if cur.val < tempNode.val:

                curhead = head

                while curhead!= cur:

                    if curhead.val > cur.val:

                        curhead.val,cur.val = cur.val,curhead.val

                    else      #就是这个else导致超时

                    curhead = curhead.next

            tempNode = cur

            cur = cur.next

        return head

相关文章

  • 纪念华南师范大学85周年校庆

    2018-11-10号

  • 2018-11-18

    2018-11-10 颖_967e 字数 198 · 阅读 0 2018-11-10 09:10 11月10日,早...

  • 2018-11-11

    2018-11-10 张正强 2018-11-10 姓名:张正强 公司:江阴嘉鸿橡塑科技有限公司 【日精进打卡第️...

  • 从项目中学习HTML+CSS

    title:tags: [HTML, CSS, Web开发]date: 2018-11-10 10:51:51ca...

  • opencv画圆

    转载 Python 用 OpenCV 画点和圆 (2) 2018-11-10 21:20:21 AlanWang4...

  • 今日分享

    焦点网络初级11期(信阳)刘鸿梅 2018-11-10 坚持分享第95天

  • 快乐小论

    时间:2018-11-10 14:06 ---------引自作者:梁毅 【快乐小论】快乐是指愉悦的心情,高兴...

  • 高效能慢生活践行320天(偶遇)

    高效能慢生活践行320天(偶遇) 2018-11-10 (周六) ❤️偶遇高中老师,回首彼岸,纵然发现光景绵长。 ...

  • 2018-11-11 - 草稿 - 草稿 - 草稿

    2018-11-10 戍边情 一九七二年岁末,我如愿穿上了梦寐以求的军装,怀着激动...

  • 2018-11-29

    第八篇:爱睡觉的爸爸 庞芸熙(修改稿) 2018-11-10 18:47 · 字数 289 · 阅读 7 · 日记...

网友评论

      本文标题:2018-11-10

      本文链接:https://www.haomeiwen.com/subject/irkzxqtx.html