数据结构(交换排序)
来源:互联网 发布:犀牛软件 下载 编辑:程序博客网 时间:2024/06/06 09:10
1、冒泡排序
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头开始进行两两比较交换,直到倒数第二位时结束
void BubbleSort(int a[], int n){ for (int i = 1; i < n; i++) { bool swaped = false; for (int j = 0; j < n - i; j++) { if (a[j]>a[j + 1]) { swap(a[j], a[j + 1]); swaped = true; } } if (!swaped) break; }}
算法特点
1 是稳定排序
2 可用于链式存储结构
3 移动记录次数较多,算法平均时间性能比直接插入排序查。当初始记录无序, n较大时,此算法不宜使用。
4 时间复杂度为O(n²)。
2、快速排序
该方法的基本思想是:
1.先从数列中取出一个数作为基准数。
2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3.再对左右区间重复第二步,直到各区间只有一个数。
void QuickSort(int a[], int low, int high){ if (low >= high) { return; } int x = a[low]; int i = low; int j = high; while (i < j) { while (i < j && a[j] >= x) { j--; } a[i] = a[j]; while (i < j && a[i] <= x) { i++; } a[j] = a[i]; } a[i] = x; QuickSort(a, low, i - 1); QuickSort(a, j + 1, high);}
算法特点
1 时间复杂度O(nlogn²);
2 是不稳定的
3 排序过程中需要定位表的下届和上届,所以适用于顺序结构,很难用于链式结构。
4适合初始记录无序,n较大的情况。
阅读全文
0 0
- 数据结构(交换排序)
- 数据结构(交换排序算法)
- 数据结构 排序 交换排序
- 数据结构-排序-交换排序
- 【数据结构】:排序--交换排序
- 数据结构 JAVA描述(十) 交换排序
- 数据结构-交换类排序
- java数据结构--交换排序
- 【数据结构】交换排序
- 数据结构复习-交换排序
- 数据结构 排序1 交换排序
- 数据结构 排序3 交换排序
- 数据结构-交换排序-冒泡排序
- 数据结构排序算法-交换排序
- Java 数据结构(一)---排序(二) 交换排序
- 数据结构中排序算法-交换排序(2)
- 数据结构-排序: 交换排序(冒泡排序法)
- 数据结构-排序: 交换排序(快速排序法)
- 【PAT】【Advanced Level】1034. Head of a Gang (30)
- 刷题——WordLadder
- 虚拟币开发专题(山寨币地址的生成算法是怎样的)
- kali打开Burp时报 java.awt无法初始化
- 压缩感知中的常见测量矩阵及其MATLAB实现代码
- 数据结构(交换排序)
- Pipeline和FeatureUnion的学习
- LeetCode-104 Maximum Depth of Binary Tree 二叉树的最大深度
- java购物车系统-yuanguiyu2017
- 好用的Markdown编辑器总结
- Sketch设置透明背景
- Oracle大数据常见优化查询
- PAT B1005. 继续(3n+1)猜想
- 【ACF学习】ACF训练检测模型