算法不会,尚能饭否之排序——插入排序法(用链表实现)
2010-11-21 22:54
573 查看
看算法看到了插入法排序,现在就把小弟用链表实现的插入法排序贴上来吧,希望大家提出意见,谢谢!如果各位大虾有更好的写法,可以和我讨论,如果我写的不好,也可以给我提出来,本人用的是vs2008。
/*************************************************************************** *FileName:InsertSortLinked.cpp * *Author:FlySky Young * *Data:Nov/16/2010 * *Description:Because the fight with my girlfriend, * *so write a program to make myself calm down. * ****************************************************************************/ #include <iostream> using namespace std; class Node { public: int value; Node *next; }; //插入排序,建立链表 void insert(Node *&head, int data) { Node *s = NULL; Node *p = NULL; Node *q = NULL; s = new Node(); s->value = data; s->next = NULL; //如果头指针是空的,就将head指向s if (head == NULL) { head = s; return; } //如果值比头小,就插入头结点之前 if (head->value > s->value) { s->next = head; head = s; return; } //搜索插入 for (q = head, p = head->next; p; q = p, p = p->next) { if (p->value > s->value) { s->next = p; q->next = s; return; } } q->next = s; return; } void showList(Node *head) { while (head) { cout<<head->value<<" "; head = head->next; } return; } void main() { int k; Node *head = NULL; cin>>k; //输入值 while (k != -1) { insert(head, k); cin>>k; } showList(head); //输出有序链表 }
相关文章推荐
- 算法不会,尚能饭否之排序——冒泡排序(bubble sort)
- 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】
- 算法不会,尚能饭否之排序——直接选择排序
- 曾经遇到的一个面试题,快速排序用链表实现,算法和以前的相似,需要注意一些细节处理
- 算法不会,尚能饭否之对分查找二叉树(又为快速排序之二叉树实现)
- 实现一个简单的c++ list容器(含sort排序 链表归并算法实现)
- 怎样编写一个程序,把一个有序整数数组放到二叉树中? 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
- 移除未排序链表中的重复节点算法实现
- 单链表实现排序算法之插入排序
- 算法不会,尚能饭否之排序——直接插入排序(Insert sort)
- SortedList排序列表 算法实现 -- (实现了两个有序链表的归并排序功能)
- 二元查找树转变成排序的双向链表之C#算法实现
- 79 1.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
- 二元查找树转变成排序的双向链表之C#算法实现
- 算法不会,尚能饭否之双向循环链表
- 算法不会,尚能饭否之排序——折半插入排序(Binary Insert Sort)
- 【老鸟学算法】二元查找树转变成排序的双向链表——算法思想及java实现
- 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- 【LeetCode-面试算法经典-Java实现】【083-Remove Duplicates from Sorted List(排序的单链表中删除重复的结点)】