冒泡排序,选择排序,快速排序,插入排序,折半选择排序
来源:互联网 发布:大学生就业形势 知乎 编辑:程序博客网 时间:2024/06/08 06:16
#include<iostream>#define MAX 1000using namespace std;//简单插入排序void InsertSort(int a[],int len){for(int i=1;i<len;i++){int j;int temp;for(j=i-1;(j>=0)&&(a[j]>a[i]);j--);temp=a[i];for(int k=i-1;k>j;k--)a[k+1]=a[k];a[j+1]=temp;}for(int i=0;i<len;i++)cout<<a[i]<<" ";cout<<endl;}//折半插入排序void BInsertSort(int a[],int len){for(int i=1;i<len;i++){int low=0;int high=i-1;int m;while(low<=high){m=(low+high)/2;if(a[m]>a[i])high=m-1;elselow=m+1;}int temp=a[i];for(int k=i-1;k>high;k--)a[k+1]=a[k];a[high+1]=temp;}for(int i=0;i<len;i++)cout<<a[i]<<" ";cout<<endl;}//冒泡排序void BubbleSort(int a[],int len){for(int i=0;i<len;i++){int flag=false;for(int j=0;j<len-1-i;j++)if(a[j]>a[j+1]){int temp;temp=a[j];a[j]=a[j+1];a[j+1]=temp;flag=true;}if(!flag)break;}for(int i=0;i<len;i++)cout<<a[i]<<" ";cout<<endl;}//快速排序void QuickSort(int a[],int low,int high){if(low>=high)return;int l=low;int r=high;int m=a[(low+high)/2];while(l<r){while(a[l]<m)l++;while(m<a[r])r--;if(l<=r){int temp;temp=a[l];a[l]=a[r];a[r]=temp;l++;r--;}}if(l<high)QuickSort(a,l,high);if(r>low)QuickSort(a,low,r);}//选择排序void SelectSort(int a[],int len){for(int i=0;i<len;i++){int minIndex=i;for(int j=i+1;j<len;j++){if(a[j]<a[minIndex])minIndex=j;}if(i!=minIndex){int temp;temp=a[i];a[i]=a[minIndex];a[minIndex]=temp;}}}void main(){while(true){int a[MAX];cout<<"请输入待排序的数组的长度:"<<endl;int len;cin>>len;cout<<"请输入数据:"<<endl;for(int i=0;i<len;i++)cin>>a[i];/*InsertSort(a,len);*//*BInsertSort(a,len);*//*BubbleSort(a,len);*//*QuickSort(a,0,len-1);*/SelectSort(a,len);for(int i=0;i<len;i++)cout<<a[i]<<" ";cout<<endl;}}
- 排序学习(直接插入排序,折半插入排序,冒泡排序,快速排序,简单选择排序)
- 冒泡排序,选择排序,快速排序,插入排序,折半选择排序
- 冒泡排序 快速排序 插入排序 堆排序 选择排序
- 插入排序、选择排序、冒泡排序、快速排序、堆排序
- 数组排序:快速排序,选择排序,冒泡排序,插入排序
- Java 排序 快速排序 冒泡排序 选择排序 插入排序
- C++实现直接插入排序,折半插入排序,希尔排序,冒泡排序,简单选择排序,快速排序,堆排序
- IOS- 快速排序,冒泡排序,直接插入排序和折半插入排序,希尔排序,堆排序,直接选择排序
- 冒泡、选择、折半排序
- 冒泡排序,选择排序,插入排序,快速排序(PHP)
- 选择排序&插入排序&冒泡排序&快速排序算法实现
- 插入排序,冒泡排序,选择排序,快速排序
- 插入排序 选择排序 冒泡排序 快速排序
- 冒泡排序、插入排序、快速排序、选择排序
- 冒泡排序-插入排序-快速排序-选择排序---飞天博客
- java实现冒泡排序,插入排序,选择排序,快速排序
- 递归,汉诺塔,冒泡排序,选择排序,插入排序,快速排序
- swift 3.0 冒泡排序,插入排序,选择排序,快速排序
- 常见的ARM嵌入式学习问答
- 2013.10.6日在109机房维护电脑心得_红蜘蛛出现异常
- 【五子棋AI】AI的基本结构——剪裁函数
- AJax第一个小实例--初学者
- 使用 /proc 文件系统来访问 Linux 内核的内容
- 冒泡排序,选择排序,快速排序,插入排序,折半选择排序
- Java 在cmd执行带包名的类
- java android知识点总汇
- 尺子最多覆盖多少点
- HDU 4714 Tree2cycle
- Hadoop内存管理及cpu管理
- 防止SQL注入式攻击
- Java程序如何生成Jar、exe及安装文件
- 用java求水仙花数