在Clion中,插入排序怎么写呢?

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

img

img

插入排序

img

#include <stdio.h>

//插入排序
void insertSort(int arry[], int len)
{
    int i;
    int temp;//保存要插入的元素
    int j;//从当前要要比较插入的元素的前面一个开始
    for ( i = 1; i < len; i++)//第一个元素视为有序,把后面的元素一个一个的插入到前面
    {
        temp = arry[i];
        j = i - 1;
        while (j >= 0&&arry[j]>temp)
        {
            arry[j + 1] = arry[j];//前面的元素往后面移动
            j--;
        }
        arry[j + 1] = temp;//把要插入的元素,插入进对应的位置
    }
}
//输出

void print(int arry[], int len)
{
    int i;
    for (i = 0; i < len; i++)
    {
        printf("%d ", arry[i]);
    }
}
int main()
{
    int arry[10]={3,44,38,5,47,15,36,26,27,2};
    insertSort(arry,10);
    print(arry,10);


    printf("\n");
    return 0;
}