交换类排序:冒泡,快速(递归与非递归)
来源:互联网 发布:算法第四版高清pdf 编辑:程序博客网 时间:2024/05/01 04:15
<pre name="code" class="cpp">交换类排序:1:冒泡排序O(n^2),空间复杂度O(1) 2:快速排序O(n乘以log以2为底,n的对数),空间复杂度O(log以2为底,n的对数)//冒泡排序void BubbleSort(int R[],int n){int i,j,tmp,flag;for(i=0;i<n-1;i++){flag=0;for(j=n-1;j>i;j--){if(R[j]<R[j-1]){tmp=R[j];R[j]=R[j-1];R[j-1]=tmp;flag=1;}}if(flag==0)return;}}//快速排序void QuickSort(int R[],int s,int t){int i=s,j=t;int tmp;if(s<t){tmp=R[s];while(i!=j){while(j>i && R[j]>tmp)j--;R[i]=R[j];while(i<j && R[i]<tmp)i++;R[j]=R[i];}R[i]=tmp;//最后一个[i]给了别人,此处的值没有用了,用来存放基准值QuickSort(R,s,i-1);QuickSort(R,i+1,t);}}//快速排序的非递归算法void QuickSort(int R[],int n){int i,j,low,high,top=-1;int temp;struck{int low;int high;}St[MAXITEM];top++;St[top].low=0;St[top].high=n-1;while(top>-1){//出栈low=St[top].low;high=St[top].high;top--;i=low;j=high;if(low<high){temp=R[low];while(i!=j){while(i<j && R[j]>temp)j--;R[i]=R[j];while(i<j && R[i]<temp)i++;R[j]=R[i];}R[i]=temp;//入栈top++;St[top].low=low;St[top].high=i-1;top++;St[top].low=i+1;St[top].high=high;}}}
1 0
- 交换类排序:冒泡,快速(递归与非递归)
- 快速排序。冒泡排序递归和非递归的实现
- 快速排序 递归 与 非递归
- 快速排序之递归与非递归
- 快速排序 递归与非递归
- 快速排序递归与非递归
- 快速排序递归与非递归实现
- 快速排序(递归,非递归),希尔排序,冒泡排序的比较
- 冒泡排序、快速排序(递归&非递归)、堆排序算法比较浅析
- 快速排序(递归和非递归)
- 快速排序(递归和非递归)
- 快速排序实现(递归+非递归)
- 快速排序(递归+非递归)
- 快速排序(非递归)
- 常见的五类排序算法图解和实现(交换类:冒泡排序,递归的快速排序)
- 常见的五类排序算法图解和实现(交换类:冒泡排序,递归的快速排序)
- 快速排序----非递归
- 快速排序 非递归
- 获取批处理文件所在路径
- Spring整合Rabbitmq
- JS作用域链
- ffmpeg学习备忘
- android viewflow 使用的一些经验
- 交换类排序:冒泡,快速(递归与非递归)
- 线性光耦原理与电路设计
- 使用AsyncTask异步获取联系人信息
- 【计算机网络】关于三种网络通信模式以及java中三种通信方式的实现介绍
- JDK配置与Tomcat配置
- bgfdhyt
- 数据结构与算法面试题80道
- Android Studio如何一直显示行数
- 通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号