排序算法(冒泡、选择、插入、快速)
来源:互联网 发布:手机怎么开通淘宝网店 编辑:程序博客网 时间:2024/05/22 01:54
需要注意的问题:
在QuickSort中,两个while的顺序不能放反了;
#include <iostream>using namespace std;void swap(int &a,int &b ) {int t=a; a=b; b=t;}void BubbleSort(int A[], int n); //冒泡排序void SelectSort(int A[], int n); //选择排序void InsertSort(int A[], int n); //插入排序void QuickSort(int A[],int low,int high); //快速排序int main(){int a[10]={12,43,2,3,56,76,2,23,9,31};//BubbleSort(a, 10);//SelectSort(a, 10);//InsertSort(a, 10);QuickSort(a,0,9 );for (int i=0;i<10;i++){cout<<a[i]<<" ";}system("pause");return 0;}void BubbleSort(int A[], int n) //冒泡排序{int flag=1; //标志位,如果数组已经为有序,则提前停止循环for (int i=0;i<n-1&&flag;i++){flag=0;for (int j=0;j<n-1-i;j++){if(A[j]>A[j+1]){swap(A[j],A[j+1]);flag=1;}}}}void SelectSort(int A[], int n) //选择排序{for (int i=0;i<n-1;i++){int k=i; //用来记录当前最小值的下标for (int j=i+1;j<n;j++)if(A[j]<A[k])k=j;swap(A[k],A[i]);}}void InsertSort(int A[], int n) //插入排序{int i,j;for (i=1;i<n;i++) //假设第一个是已经排好的{int x=A[i];for (j=i-1;(j>=0)&&(A[j]>x);)//j从排好序列的最后一个开始{A[j+1]=A[j]; //找到插入的位置j;j--; //放在这里便于理解}A[j+1]=x; }}void QuickSort(int A[],int low,int high) //快速排序{if (low>=high) return; //递归调用的结束条件int i=low; int j=high; int x=A[low]; //将low位置的值作为标准,并且腾空while (i<j) //注意比较的次序,从high端开始。{while(A[j]>x && j>i) j--; if (i<j) {A[i] = A[j]; i++; } //把大的放在一端,小的放在一端while(A[i]<x && i<j) i++; if (i<j) {A[j] = A[i]; j--; }}A[i] = x;QuickSort(A,low,i-1); //递归调用QuickSort(A,i+1,high);}
1 0
- 排序算法(冒泡、选择、插入、快速)
- 算法排序(冒泡、选择、插入、快速)
- 排序算法(冒泡、快速、选择、插入)
- 排序算法(冒泡、快速、选择、插入)
- 算法--排序(冒泡,选择,插入,快速)
- 算法--排序(冒泡,选择,插入,快速)
- C 排序算法 (冒泡)(选择)|(插入)|(快速)
- php 冒泡、选择、插入、快速排序算法
- 冒泡、插入、选择、快速排序算法
- 几种排序算法(冒泡排序算法,选择排序算法,快速排序算法,插入排序)
- PHP实现插入、选择、冒泡、快速排序算法(转贴)
- 字符串排序算法(冒泡、选择、插入、希尔、快速)
- 几种排序算法总结(冒泡、选择、插入、快速)
- java 排序算法总结(冒泡,选择,插入,快速)
- 排序算法---基础算法(冒泡排序,快速排序,选择排序,直接插入排序,桶排序)
- 选择排序&插入排序&冒泡排序&快速排序算法实现
- Java排序算法(冒泡排序、选择排序、插入排序、反数组排序、快速排序)例子
- Javascript排序算法(冒泡排序,选择排序,插入排序,归并排序,快速排序)
- 从坐拥40亿到一无所有 昔日富豪摆摊还债
- AlarmManager(闹钟服务)
- centos 7 64bit 通过tomcat配置二级域名
- python学习手册(2)
- 欢乐赛总结
- 排序算法(冒泡、选择、插入、快速)
- linux shell 编程 笔记(cat who wc grep ping seq)
- gdb 信号处理
- debian操作系统安装(虚拟机)及开发环境配置
- Docker在美团的应用
- 数据库基础知识1
- 模式识别笔记(1)
- 第九周项目3--稀疏矩阵的三元组表示的实现及应用2
- 从头安装Ubuntu记录:安装系统