插入排序C语言,小白必看的教科书般详解

简介: 插入排序C语言,小白必看的教科书般详解

划重点!插入排序C语言,小白必看的教科书般详解

插入排序是一种简单直观的排序算法,也是计算机科学领域中常用的一种算法。它的基本原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

插入排序的过程可以形象地比喻成玩扑克牌。假设你的手中有一副乱序的扑克牌,你的目标是将它们按照某种顺序(比如从小到大)排列好。开始时,你左手为空并且桌子上只有一张牌,之后每次从未排序的牌中拿出一张,将其插入到左手中正确的位置,直到所有牌都插入到左手中,排序就完成了。

在计算机程序设计中,插入排序通常使用C语言来实现。下面是一个简单的C语言插入排序实现:

```c
#include 
void insertionSort(int arr[], int n) {
    int i, key, j;
    for (i = 1; i < n; i++) {
        key = arr[i];
        j = i - 1;
        while (j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];
            j = j - 1;
        }
        arr[j + 1] = key;
    }
}
int main() {
    int arr[] = {12, 11, 13, 5, 6};
    int n = sizeof(arr) / sizeof(arr[0]);
    insertionSort(arr, n);
    printf("Sorted array: 
");
    for (int i = 0; i < n; i++)
        printf("%d ", arr[i]);
    printf("
");
    return 0;
}

在这个实现中,我们首先定义了一个`insertionSort`函数,它接受一个整数数组和数组的长度作为参数。函数中的外层循环控制待排序的元素,内层循环则负责将当前的待排序元素插入到已经排序的部分中。

在主函数`main`中,我们声明了一个乱序的整数数组`arr`,并计算了数组的长度`n`。然后调用`insertionSort`函数对数组进行排序,并打印出排序后的数组。

通过运行上述代码,你会得到输出结果为:`Sorted array: 5 6 11 12 13`,这表明我们的插入排序算法正确地将乱序的数组排成了有序。

相关文章
|
1月前
|
C语言
对链表使用插入排序的C语言实现示例
对链表使用插入排序的C语言实现示例
|
18天前
|
C语言
C语言实现插入排序
C语言实现插入排序
16 0
|
8月前
|
搜索推荐 算法 C语言
【数据结构】—从直接插入排序升级到希尔排序究极详解(含C语言实现)
【数据结构】—从直接插入排序升级到希尔排序究极详解(含C语言实现)
|
9月前
|
算法 C语言
插入排序-C语言实现
插入排序-C语言实现
95 0
|
10月前
|
算法 C语言
直接插入排序--C语言(附详细代码)(附图详解)
直接插入排序--C语言(附详细代码)(附图详解)
414 0
|
10月前
|
存储 搜索推荐 测试技术
数据结构__<八大排序> __插入排序 |希尔排序 |选择排序 |堆排序 |快速排序 |归并排序(C语言实现)
数据结构__<八大排序> __插入排序 |希尔排序 |选择排序 |堆排序 |快速排序 |归并排序(C语言实现)
238 0
|
11月前
|
存储 算法 搜索推荐
用C语言进行学生成绩排序(插入排序)
本文主要是用C语言进行学生成绩按分数排序(插入排序)
205 1
用C语言进行学生成绩排序(插入排序)
|
11月前
|
算法 C语言
C语言---插入排序(直接插入和希尔)
C语言---插入排序(直接插入和希尔)
105 0
C语言经典实例:21-30例:插入排序、希尔排序1、快速排序、希尔排序2、递归法、完数、斐波那契数列、公约数和公倍数、判断水仙花数统计单词个数
C语言经典实例:21-30例:插入排序、希尔排序1、快速排序、希尔排序2、递归法、完数、斐波那契数列、公约数和公倍数、判断水仙花数统计单词个数
C语言经典实例:21-30例:插入排序、希尔排序1、快速排序、希尔排序2、递归法、完数、斐波那契数列、公约数和公倍数、判断水仙花数统计单词个数
|
18天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)