排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列。
以下案例有:
//简单选择排序
//直接插入排序
#include <stdio.h>
void sim_sort(int *a, int len) // 简单选择排序
{
for (int i = 0; i < len - 1; i++)
{
int p = i;
for (int j = i + 1; j < len; j++)
{
if (*(a + p) > *(a + j))
{
p = j;
}
}
if (i != p)
{
int t = *(a + i);
*(a + i) = *(a + p);
*(a + p) = t;
}
}
}
void in_sort(int *a, int len) // 直接插入排序
{
for (int i = 1; i < len; i++)
{
int p = i;
int t = *(a + i);
while (p > 0)
{
if (t < *(a + p - 1))
{
*(a + p) = *(a + p - 1);
}
else
{
*(a + p) = t;
break;
}
p--;
}
if (p == 0)
{
*a = t;
}
}
}
void output(int *a, int len) // 输出
{
for (int i = 0; i < len; i++)
{
printf("%d\t", a[i]);
}
puts("");
printf("有%d个元素\n", len);
}
void main()
{
int a[] = {2, 34, 12, 13, 34, 3};
int len = sizeof(a) / sizeof(a[0]);
output(a, len);
in_sort(a, len);
// sim_sort(a,len);
output(a, len);
}