编译环境:Linux 10.04 LTS GCC
1.插入排序:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//交换
void swap(int *a, int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
//打印一个数组
void print_array(int *a, int len)
{
int i;
for (i = 0; i < len; i++)
{
printf("%5d", a[i]);
}
printf("\n");
}
//直接插入排序
void insert_sort1(int *a, int len)
{
int i;
int j;
int current_value;
int pos;
for (i = 1; i < len; i++)
{
current_value = a[i];
//找到位置
for (j = 0; j < i; j++)
{
if (current_value < a[j])
{
break;
}
}
//如果在前面某个位置,插入,否则即为最大值,不用插入
if (j < i)
{
pos = j;
for (j = i; j > pos;