一、插入排序
中心思想为将一个元素插入一个有序序列。
//插入排序
void InsertSort(int ar[],int n)//将n个元素的整数数组插入排序
{
int temp;//用于保存需要插入的元素
for (int i = 1; i < n; i++)
{
if (ar[i - 1] > ar[i]) //有序序列的最后一个元素比插入的元素大
{
temp = ar[i];//保存插入元素
int j;
//把有序序列的元素往前移一位,直到插入元素比后一个大
for (j = i - 1; temp < ar[j] && j>=0; j--)
ar[j+1] = ar[j];
ar[j + 1] = temp;
}
}
}
二、起泡排序
//冒泡排序
void BubbleSort(int ar[], int n)
{
int tag = 0;//标记序列是否已经完成排序
int temp;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - i - 1; j++)
if (ar[j] > ar[j + 1])//前一个元素比后一个元素大,两者交换位置
{
temp = ar[j];
ar[j] = ar[j + 1];
ar[j + 1] = temp;
tag = 1;
}
if (tag == 0)//没有元素交换,排序已完成
break;
tag = 0;
}
}