选择排序
1,选择待排序数组中的第i个元素
2,从它之后,也就是从第i+1个元素到最后一个元素(N)中找到最小的元素,将其与1中选择的元素互换
特点:排序过程中,前i个元素是排好序的
插入排序
1,将待排序数组的第i个元素放入temp
2,向左移动一位,如果是比temp大的元素,就替换掉当前的元素
特点:排序过程中,前i个元素是排好序的
选择排序在i后面的元素中查找,插入排序在i前面的元素中查找。
顾名思义,选择是在未排序好的数组中选出合适的元素,插入是往排序好的数组中插入元素。
插入排序:
void InsertSort(int a[],int M){
int tmp;
int i, j;
for (i = 1; i < M; ++i){
tmp = a[i];
for (j = i; j > 0 && a[j - 1] > tmp; j--)
a[j] = a[j - 1];
a[j] = tmp;
for (int k = 0; k < M; ++k)
cout << a[k] << " ";
cout << endl;
}
}
选择排序:
void SelectSort(int a[],int M){
int pos;
int tmp;
for (int i = 0; i < M; ++i)
{
pos = i;
tmp = a[i];
for (int j = i + 1; j < M; ++j)
{
if (a[j] < tmp)
{
pos = j;
tmp = a[j];
}
}
a[pos] = a[i];
a[i] = tmp;
for (int k = 0; k < M; ++k)
cout << a[k] << " ";
cout << endl;
}
}