温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java如何实现对链表进行插入排序

发布时间:2022-01-17 09:20:17 阅读:206 作者:小新 栏目:大数据
Java开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍java如何实现对链表进行插入排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

对链表进行插入排序。

java如何实现对链表进行插入排序

插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。

每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。

插入排序算法:

  1. 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。

  2. 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。

  3. 重复直到所有输入数据插入完为止。

示例 1:

输入: 4->2->1->3输出: 1->2->3->4

示例 2:

输入: -1->5->3->4->0输出: -1->0->3->4->5

答案:

 1public ListNode insertionSortList(ListNode head) { 2    if (head == null) 3        return head; 4    ListNode helper = new ListNode(0); 5    ListNode cur = head; 6    ListNode pre = helper; 7    ListNode next = null; 8    while (cur != null) { 9        next = cur.next;10        while (pre.next != null && pre.next.val < cur.val) {11            pre = pre.next;12        }13        cur.next = pre.next;14        pre.next = cur;15        pre = helper;16        cur = next;17    }18    return helper.next;19}

解析:

关于排序前面我们介绍了十几种排序算法,这里让使用插入排序,其实插入排序并不难,这里难的是链表的断开和重连。当然我们还可以使用其他的方法,比如我们把链表的每一个节点全部断开,然后存放到数组中,接着在排序,最后再把排序好的数组按顺序全部再连接起来即可。

以上是“java如何实现对链表进行插入排序”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/1010616/blog/4440367

AI

开发者交流群×