//冒泡排序
void maopao(int *list,int count)
{
int i, j, temp;
for (i = 0;i < count;i++)
{
for (j = 0;j < count - i;j++)
{
if (list[j] > list[j + 1])
{
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
</pre><pre name="code" class="cpp">//选择排序
void select(int *list, int count)
{
int i, j, temp, pos;
for (i = 0;i < count;i++)
{
temp = list[i];
pos = i;
for (j = i + 1;j < count;j++)
{
if (temp > list[j])
{
temp = list[j];
pos = j;
}
}
list[pos] = list[i];
list[i] = temp;
}
}
在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
//插入排序
void insert(int *list, int count)
{
int i, j, temp;
for (i = 1;i < count;i++)
{
temp = list[i];
for (j = i;j > 0 && list[j - 1] > temp;j--)
{
list[j] = list[j - 1];
}
list[j] = temp;
}
}
//快速排序
void sort(int *list, int low, int high)
{
if (low >= high)
return;
int first = low;
int last = high;
int key = list[first];
while (first < last)
{
while (first < last && list[last] >= key)
{
--last;
}
list[first] = list[last];
while (first < last && list[first] <= key)
{
++first;
}
list[last] = list[first];
}
list[first] = key;
sort(list, low, first - 1);
sort(list, first + 1, high);
}