C++排序算法
1.选择排序
#include<iostream>
using namespace std;
void SelectionSort(int a[], int size)
{
for (int i = 0; i < size - 1; ++i)
{
int tmpMin = i;
for (int j = i + 1; j < size; ++j)
{
if (a[j] < a[tmpMin])
tmpMin = j;
}
int tmp = a[i];
a[i] = a[tmpMin];
a[tmpMin] = tmp;
}
}
int main()
{
cout << "请输入需要排序的个数n" << endl;
int n;
cin >> n ;
int a[100];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
SelectionSort(a, n);
cout << "排序后的结果:" << endl;
for (int i = 0; i < n; i++)
{
cout<< a[i]<<endl;
}
return 0;
}
2.插入排序
#include<iostream>
using namespace std;
void InsertionSort(int a[], int size)
{
for (int i = 1; i < size; ++i)
{
for (int j = 0; j < i; ++j)
if (a[j]>a[i])
{
int tmp = a[i];
for (int k = i; k > j; --k)
a[k] = a[k - 1];
a[j] = tmp;
break;
}
}
}
int main()
{
cout << "请输入需要排序的个数n" << endl;
int n;
cin >> n ;
int a[100];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
InsertionSort(a, n);
cout << "排序后的结果:" << endl;
for (int i = 0; i < n; i++)
{
cout<< a[i]<<endl;
}
return 0;
}
3.冒泡排序
#include<iostream>
using namespace std;
void BubbleSort(int a[], int size)
{
for (int i = size - 1; i > 0; --i)
{
for (int j = 0; j < i; ++j)
{
if (a[j] > a[j + 1])
{
int tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
int main()
{
cout << "请输入需要排序的个数n" << endl;
int n;
cin >> n ;
int a[100];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
BubbleSort(a, n);
cout << "排序后的结果:" << endl;
for (int i = 0; i < n; i++)
{
cout<< a[i]<<endl;
}
return 0;
}