冒泡选择插入三大排序
#include<cstdio>
#include<cstring>
void maopaoSort(int a[5]) //冒泡排序函数
{
for (int i = 1; i < 5; i++) //走n-1趟
{
for (int j = 0; j < 5-i; j++)
{
if (a[j] > a[j + 1]) //如果前面数比后面数小就交换
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (int i = 0; i <5; i++)
{
printf("%d ", a[i]);
}
printf("---冒泡排序\n");
}
void selectSort(int a[]) { //选择排序函数
for (int i = 0; i < 5; i++) //走n趟
{
int k = i;
for (int j = i; j < 5; j++) //索引出最小的值的下标并标记
{
if (a[i] >= a[j])
{
k = j;
}
}
int temp = a[i]; //把最小值排到前面
a[i] = a[k];
a[k] = temp;
}
for (int i = 0; i < 5; i++)
{
printf("%d ", a[i]);
}
printf("---选择排序\n");
}
void insertSort(int a[]) //插入排序函数
{
for (int i = 1; i < 5; i++) //进行n-1趟
{
int temp = a[i], j = i; //temp存放a[i],j从i开始枚举
while (j > 0 && temp < a[j - 1]) //只要temp小于前一个元素就往前移一位
{
a[j] = a[j - 1];
j--;
}
a[j] = temp;
}
for (int i = 0; i < 5; i++)
{
printf("%d ", a[i]);
}
printf("---插入排序\n");
}
int main()
{
int a[5] = {5,15,9,3,0};
maopaoSort(a); //调用冒泡排序函数
selectSort(a); //调用选择排序函数
insertSort(a); //调用插入排序函数
}
如有错误敬请留言评论*****嘻嘻