Middle-题目63:147. Insertion Sort List
来源:互联网 发布:淘宝开店推广费用 编辑:程序博客网 时间:2024/05/17 18:17
题目原文:
Sort a linked list using insertion sort.
题目大意:
使用插入排序对单链表排序。
题目分析:
使用直接插入排序,即从第二个元素开始,每次寻找它应该在前面的有序区间内所在的位置。
源码:(language:c)
struct ListNode* insertionSortList(struct ListNode* head) { if(!head || !head->next) return head; else { struct ListNode* sortedHead = (struct ListNode*)malloc(sizeof(struct ListNode)); sortedHead->val = head->val; sortedHead->next = NULL; for (struct ListNode* node = head->next; node; node = node->next) { if(node->val <= sortedHead->val) { // this node is smaller than the smallest node of sortedHead struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode)); newNode->val = node->val; newNode->next = sortedHead; sortedHead = newNode; } else { struct ListNode* temp; for(temp = sortedHead; temp; temp = temp->next) { if(temp->val <= node->val && (!temp->next || temp->next->val >node->val)) { //insert this node after temp struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode)); newNode->val = node->val; newNode->next = temp->next; temp->next = newNode; break; } } } } return sortedHead; }}
成绩:
76ms,beats 25%,众数72ms,25%
cmershen的碎碎念:
本题代码还是过于复杂,而且可以在有序区使用二分查找优化之。
0 0
- Middle-题目63:147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- 147. Insertion Sort List
- IOS开发之Xcode下使用多target, 让同一份代码,一个工程 Project 管理多个app
- js基础-form对象
- Swap file ".Podfile.swp" already exists!
- 3.3 贝叶斯线性回归
- HDOJ 5411 CRB and Puzzle (矩阵快速幂)
- Middle-题目63:147. Insertion Sort List
- 【JavaScript 】函数柯里化
- 欢迎使用CSDN-markdown编辑器
- Shell字符串
- 说说JSON和JSONP,也许你会豁然开朗
- yum中的python版本错误(转载)
- Middle-题目64:95. Unique Binary Search Trees II
- 从杭电OJ1219 到getchar 以及EOF
- 第十四周项目1.1—排序函数模板(冒泡法排序)