概念及其介绍:
插入排序一般又称为直接插入排序,对于少量的元素排序是一个很好地算法,它的思想是将一个记录插入到一个已经排好序的有序表中,从而组成一个新的,记录数增加1的有序表。
算法图示过程:
从第二个位置的6开始,比7小,进行交换位置
9比7大,不需要交换位置
第四个位置的3比9小,进行交换位置
............以此继续往后进行交换 。
用C语言来实现该算法:
void the_sort(int arr[],int se)
{
int position;//下标
int insert;//改下标所对应的值
int i;
for(i = 1;i<se;i++)
{
position = i;//记录插入的元素下标
insert = arr[i];//记录插入的元素值
while(position > 0 && arr[position -1 ] > insert)//如果说记录的元素前一项的元素值大于记录元素值,同时下标的值大于0
{
//则让下标为position的值向后移动一位
arr[position] = arr[position -1];
position--;
}
if(position != i)
{
arr[position] = insert;
}
}
}
//一个打印函数用来打印出来进行排序后的数组
void print(int arr[],int se)
{
for (int* ps = arr; ps < arr + se; ps++)
{
printf("%d ", *(ps));
}
}
int main()
{
int arr[] = { 7,6 ,9,3,1,2,5,4};
the_sort(arr,8);
print(arr);
return 0;
}