编写程序实现下述五种算法,并用以下无序序列加以验证:
60 ,32, 65, 97, 9, 13, 27, 80
1.简单插入排序
2.冒泡排序
3.选择排序
using namespace std;
#include <iostream>
#include <cstdio>
#include <cstdlib>
void swap(int & i, int & j)
{
int temp;
temp = i;
i = j;
j = temp;
}
//获取数组的长度
int length(int * data)
{
int counts = 0;
while (data[counts] >= 0 && data[counts] <= 65535)
{
counts++;
}
return counts;
}
// 打印数组
void PrintData(int * data)
{
for (int i = 0; i < length(data); i++)
{
cout << data[i] << " ";
}
cout << endl;
}
//冒泡怕羞
void BubblingSort(int * data)
{
for (int i = 0; i < length(data); i++) {
for (int j = 0; j < length(data) - i - 1; j++) {
if (data[j] > data[j + 1]) {
swap(data[j], data[j + 1]);
}
}
}
}
// 简单插入查询
void SimpyInsertSort(int * data)
{
for (int i = 0; i < length(data); i++)
{
for (int j = i; j > 0 && data[j - 1] > data[j]; j--)
{
swap(data[j], data[j - 1]);
}
}
}
// 选择排序
void SelectSort(int * data)
{
for (int i = 0; i < length(data); i++)
{
int x = data[i], j;
for (j = i; j > 0 && data[j - 1] > x; j--)
data[j] = data[j - 1];
data[j] = x;
}
}
int main()
{
int data[8] = { 60 ,32, 65, 97, 9, 13, 27, 80 };
//BubblingSort(data);
//SimpyInsertSort(data);
SelectSort(data);
PrintData(data);
system("pause");
return 0;
}