【C语言】单链表的排序
2015-11-26 20:09
309 查看
void BubleSort(Plinklist *pplist) { assert(pplist ); Node *end= NULL ; Node *begin = *pplist ; while ((*pplist )->next != end) { while (begin->next!=end) { if (begin->data < begin->next->data) { int tmp = begin->data; begin->data = begin->next->data; begin->next->data = tmp; } begin = begin->next; } end = begin; begin = * pplist; } }
[align=left]//选择排序[/align]
[align=left]思想:1.从第一个节点开始,找出表中最小的元素,然后把该最小元素与第一个节点的值换[/align]
[align=left] 2.从第二个节点开始,找出表中最小的元素,然后把该最小元素与第二个节点的值换[/align]
3.从第三个节点开始,找出表中最小的元素,然后把该最小元素与第三个节点的值换
[align=left] 4.以此类推...,直到开始节点为最后一个节点。[/align]
void SelectSort(Plinklist *pplist) { assert(pplist ); Plinklist begin = *pplist ; Plinklist end = *pplist ; while (begin->next != NULL ) { Plinklist tmp = begin; end = begin->next; while (end) { if (tmp->data > end->data) { tmp = end; } end = end->next; } if (tmp!= begin) { int x = tmp->data; tmp->data = begin->data; begin->data = x; } begin = begin->next; } }
相关文章推荐
- 【C语言】查找链表的中间节点及倒数第K个节点
- 【C语言】单链表的逆置
- 有趣的单精度浮点数(float)
- 【C语言】两个有序单链表的合并
- C++学习之模板:模板重载
- const的用法
- 快速排序
- C++矩阵库 Eigen 快速入门
- c++ ip地址的操作 c版
- C++11学习笔记(二)
- C++知识点梳理(1)
- C++ template学习记录(函数模板)
- C++项目调用C#dll项目
- VB与C++之间数据类型的对应关系
- 图像特征LBP原理及C++实现
- Android ndk 入门4 - C++实现
- C++ class static
- 取读浮点数
- 一个诡异的bug
- C++primer_泛型算法-插入迭代器和iostream迭代器