c语言实现插入排序算法

2021-01-17  本文已影响0人  一路向后

1.算法简介

   插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。

2.源码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//插入排序算法
void insert_sort(int n, int *u)
{
        int i, j, k;

        for(i=1; i<n; i++)
        {
                k = u[i];

                //若某个数字比这个数字大, 就右移一下
                for(j=i-1; j>=0 && u[j] > k ; j--)
                {
                        u[j+1] = u[j];
                }

                u[j+1] = k;
        }
}

int main()
{
        int u[] = {1, 9, 7, 0, 6};
        int n = 5;
        int i = 0;

        insert_sort(n, (int *)u);

        for(i=0; i<n; i++)
        {
                printf("%d ", u[i]);
        }

        putchar('\n');

        return 0;
}

3.编译源码

$ gcc -o test test.c

4.运行及结果

$ ./test
0 1 6 7 9 
上一篇 下一篇

猜你喜欢

热点阅读