选择排序
#include <stdio.h>
void mySwap(int *a, int i, int j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
void myPrint(int *a, int len)
{
int i;
for (i = 0; i < len; i++)
{
printf ("%4d", a[i]);
}
printf ("\n");
}
void mySort(int *a, int len)
{
int i, j;
for (i = 0; i < len-1; i++) // 找的次数
{
int min = i;
for (j = i+1; j < len; j++)
{
if (a[min] > a[j])
{
min = j;
}
}
if (min != i)
mySwap(a, min, i);
}
}
int main()
{
int a[] = {9,8,7,6,5,4,3,2,1,0};
int len = sizeof(a)/sizeof(a[0]);
mySort(a, len);
myPrint(a, len);
return 0;
}
插入排序
#include <stdio.h>
void mySwap(int *a, int i, int j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
void myPrint(int *a, int len)
{
int i;
for (i = 0; i < len; i++)
{
printf ("%4d", a[i]);
}
printf ("\n");
}
void mySort(int *a, int len)
{
int i;
for (i = 1; i < len; i++)
{
int get = a[i];
int j = i-1;
while (j >= 0 && a[j]>get)
{
a[j+1] = a[j];
j--;
}
a[j+1] = get;
}
}
int main()
{
int a[] = {9,8,7,6,5,4,3,2,1,0};
int len = sizeof(a)/sizeof(a[0]);
mySort(a, len);
myPrint(a, len);
return 0;
}