排序(一)
来源:互联网 发布:全套大富豪棋牌源码 编辑:程序博客网 时间:2024/06/07 01:03
1.冒泡排序void BubbleSort(ElemType a[],int n){ 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; //没有发生交换,则本身有序,直接返回 }}最简单、直接,算法稳定。时间复杂度O(n^2),空间复杂度O(1)2.快速排序void QuickSort(ElemType a[],int low,int high){ if(low<high){ int pivotpos=Partition(a,low,high); //划分子表 QuickSort(a,low,pivotpos-1); //递归调用,需要递归栈 QuickSort(a,pivotpos+1,high); }}int Partition(ElemType a[],int low,int high){ ElemType pivot=a[low]; //以第一个值为枢纽值 while(low<high){ while(low<high&&a[high]>=pivot) --high; a[low]=a[high]; while(low<high&&a[low]<=pivot) ++low; a[high]=a[low]; } a[low]=piovt; return low; //返回存放枢纽值的最终位置}时间复杂度O(nlogn)空间复杂度O(logn)理想情况下每次平均划分,以空间换时间,内部排序性能最优
阅读全文
0 0
- 一.排序
- 排序(一)
- 排序一--基础排序
- 排序(一)-插入排序
- 排序一 简单排序
- 排序一:快速排序
- 排序一--基础排序
- 排序一 冒泡排序
- 排序一 冒泡排序
- 排序算法(一) 选择排序
- 排序(一):简单排序
- 排序算法《一》冒泡排序
- 排序算法一 冒泡排序
- 排序(一):简单排序
- 排序(一) 冒泡排序
- 排序算法(一):插入排序
- 一、排序算法 归并排序
- 排序算法一:插入排序
- 机器学习学习笔记 4、Python及其基本语法
- MFC带边框滚动字幕
- size_t和int的区别
- sublime text 3 mac 快捷键
- 首页实现_特价区域实现
- 排序(一)
- html +css 布局技巧
- 编译frameworks\native\services\surfaceflinger\tests\resize
- 图像的归一化
- TCP的三次握手,四次挥手
- UVA
- 从CString到char的相互转换
- unit 16
- linux常用命令大全