三类最基本排序(插入,冒泡,选择)

来源:互联网 发布:淘宝女装电子商务模式 编辑:程序博客网 时间:2024/05/04 07:11

插入是稳定的,冒泡稳定性取决于是否有等号,选择是不稳定的


#include<iostream>#include<algorithm>#include <vector>#include<string.h>#include<ctype.h>#include<math.h>using namespace std;void fun();int main(){    fun();    return 0;}void fun(){int temp,i,j,arr1[8]={19,1,23,17,19,55,84,15},arr2[8]={19,1,23,17,19,55,84,15},arr3[8]={19,1,23,17,19,55,84,15};//插入排序for(i=1;i<8;i++){if(arr1[i-1]>arr1[i]){temp=arr1[i];for(j=i-1;temp<arr1[j]&&j>-1;--j)arr1[j+1]=arr1[j];arr1[j+1]=temp;}}//冒泡排序for(int flag=1,i=1;i<8&&flag;++i){for(flag=0,j=0;j<8-i;++j){if(arr2[j]>arr2[j+1]){flag=1;temp=arr2[j+1];arr2[j+1]=arr2[j];arr2[j]=temp;}}}//选择排序for(int flag,i=0;i<8-1;i++){flag=i;for(j=i+1;j<8;j++)if(arr3[j]<arr3[flag])flag=j;if(i!=flag){temp=arr3[i];arr3[i]=arr3[flag];arr3[flag]=temp;}}for(i=0;i<8;i++)cout<<arr1[i]<<" ";cout<<endl;for(i=0;i<8;i++)cout<<arr2[i]<<" ";cout<<endl;for(i=0;i<8;i++)cout<<arr3[i]<<" ";cout<<endl;}

结果为下图所示





0 0