冒泡排序
2015-08-22 14:37
176 查看
假设待排序表长为n,从后向前(或从前往后)两两比较相邻元素的值,若为逆序,则交换他们,直到序列比较完,这是一趟冒泡排序,结果是将最小的元素交换到待排序列的第一个位置。下一趟排序的时候,前一趟确定的最小元素不在参与比较,待排序列减少一个元素,每趟冒泡排序的结果是把序列中的最小元素放到了序列的最终位置,……,这样最多做n-1趟冒泡就能把所有的元素排好序。
[/code]时间复杂度:o(n^2)稳定排序
来自为知笔记(Wiz)
void BubbleSort(ElemType A[], int n)
{
//用冒泡排序将序列A中的元素按从小到大进行排列
for(i=0; i<n-1; i++)
{
flag=false;
for(j=n-1; j>i; j--)
{
if(A[j-1].key>A[j].key)
{
swap(A[j-1], A[j]);
flag=true;
}
}
if(flag==false)
return ;
}
}
[/code]时间复杂度:o(n^2)稳定排序
来自为知笔记(Wiz)
相关文章推荐
- 关于file.writelines换行符的添加
- 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历 (BFS)
- 开发记录
- 欧拉函数
- iOS项目开发实战——使用三种方式实现页面跳转与参数传递(三)
- Object-C 类定义 -- 笔记
- 变量 声明、存储和范围
- 值传递的图解
- [置顶] iOS单例设计模式详细讲解(单例设计模式不断完善的过程)
- Android笔记一
- Caffe调参相关问题整理
- 王爽《汇编语言》第2版-----2、寄存器
- 希尔排序
- arm-linux-objdump 的使用
- 数字游戏
- 散列技术之链地址法(基于无序链表)
- s3c6410的GPIO操作
- 使用指定glibc编译程序
- 文件上传