C++之四种排序算法 插入 选择 冒泡 希尔
Posted 春风又一季
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++之四种排序算法 插入 选择 冒泡 希尔相关的知识,希望对你有一定的参考价值。
#include <iostream>
using namespace std;
/*插入排序*/
void InsertSort(int a[],int n)
int i,j,temp;
for(i=1;i<n;i++)
temp=a[i];
j=i-1;
while(j>=0&&temp<a[j])
a[j+1]=a[j];
j--;
a[j+1]=temp;
for(int k=0;k<n;k++)
cout<<a[k];
//选择排序
void selectSort(int a[],int n)
int i,j,k;
int temp;
for(i=0;i<n;i++)
k=i;
for(j=i+1;j<n;j++)
if(a[k]>a[j])
k=j;
temp=a[i];
a[i]=a[k];
a[k]=temp;
for(int k=0;k<n;k++)
cout<<a[k];
//冒泡排序
void bubleSort(int a[],int n)
int i,j,flag;
int temp;
for(i=n-1;i>=1;i--)
flag=0;
for(j=1;j<=i;j++)
if(a[j-1]>a[j])
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
flag=1;
if(flag==0)
for(int k=0;k<n;k++)
cout<<a[k];
//希尔排序
void shellSort(int a[],int n)
int j;
for(int gap=n/2;gap>0;gap=gap/2)
for(int i=gap;i<n;i++)
int tmp=a[i];
for(j=i;j>=gap&&tmp<a[j-gap];j=j-gap)
a[j]=a[j-gap];
a[j]=tmp;
for(int k=0;k<n;k++)
cout<<a[k];
int main()
int a[]=1,5,6,4,7,8,9,3;
int b[]=4,5,7,8,6,5,1,2,3;
int c[]=4,5,7,8,6,5,1,2,3;
int d[]=4,5,7,8,6,5,1,2,3;
InsertSort(d,9);
cout<<endl;
shellSort(b,9);
cout<<endl;
selectSort(c,9);
cout<<endl;
bubleSort(a,8);
system("pause");
return 0;
以上是关于C++之四种排序算法 插入 选择 冒泡 希尔的主要内容,如果未能解决你的问题,请参考以下文章
排序算法学习(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序)
Python八大算法的实现,插入排序希尔排序冒泡排序快速排序直接选择排序堆排序归并排序基数排序。
插入排序(直接插入排序希尔排序);交换排序(冒泡排序快速排序);选择排序(简单选择排序堆排序);归并排序和基数排序;基于关键词比较的排序算法下界分析