选择排序
#include<iostream>
using namespace std;
typedef int elemtype;
void SelectSort(elemtype arr[], int n);
void SelectSort(elemtype arr[], int n)
{
for (int i = 0; i < n-1; i++)
{
elemtype min = arr[i];
int flag = i;
for (int j = i+1; j < n; j++)
{
if (min > arr[j])
{
min = arr[j];
flag = j;
}
}
min = arr[i];
arr[i] = arr[flag];
arr[flag] = min;
}
}
插入排序
#include<iostream>
using namespace std;
typedef int elemtype;
void InsertSort(elemtype arr[], int n);
void InsertSort(elemtype arr[], int n)
{
for (int i = 1; i < n; i++)
{
elemtype temp = arr[i];
int j = i - 1;
while (temp < arr[j] && j >= 0)
{
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = temp;
}
}
冒泡排序
#include<iostream>
using namespace std;
typedef int elemtype;
void BubbleSort(elemtype arr[], int n);
void BubbleSort(elemtype arr[], int n)
{
for (int i = 0; i < n; i++)
{
int flag = 0;
for (int j = 0; j < n-1; j++)
{
if (arr[j] > arr[j + 1])
{
elemtype temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = 1;
}
}
if (flag == 0)
break;
}
}
希尔排序
#include<iostream>
using namespace std;
typedef int elemtype;
void ShellSort(elemtype arr[], int n);
void ShellSort(elemtype arr[], int n)
{
int gap = n;
while(gap>1)
{
gap /= 2;
for (int j = 0; j < n - gap; j++)
{
if (arr[j] > arr[j + gap])
{
elemtype temp = arr[j];
arr[j] = arr[j + gap];
arr[j + gap] = temp;
}
}
}
}