C语言——插入排序

先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。

#include <stdio.h>

#include <stdlib.h>

void insertion_sort(int *arr, int n)

{

for (int i = 1; i < n; i++)

{

int key = arr[i];

int j = i - 1;

while (j >= 0 && key < arr[j])

{

arr[j + 1] = arr[j];

j--;

}

arr[j + 1] = key;

}

}

void print_arry(int *arr,int n)

{

for (int i = 0; i < n; i++)

{

printf("%d ", arr[i]);

}

}

int main()

{

int n;

scanf_s("%d", &n);

int *arr = (int *)malloc(sizeof(int) * n);

if (arr == NULL)

{

return 1;

}

else

{

for (int i=0; i < n; i++)

{

scanf_s("%d", arr + i);

}

insertion_sort(arr, n);

print_arry(arr, n);

}

free(arr);

return 0;

}

使用了malloc函数动态开辟内存空间,最后记得要释放。

自定义了两个函数模块,一个是插入排序函数,一个是打印函数

结果

相关推荐
lkbhua莱克瓦244 分钟前
项目知识——Next.js App Router体系
开发语言·javascript·项目知识
Jay20021115 分钟前
【机器学习】30 基于内容的过滤算法
人工智能·算法·机器学习
冰西瓜6008 分钟前
分治(二)算法设计与分析 国科大
数据结构·算法
Cricyta Sevina10 分钟前
Java 语言多线程核心概念全解析
java·开发语言
小小晓.16 分钟前
Pinely Round 2 (Div. 1 + Div. 2)
c++·算法
缘三水16 分钟前
【C语言】15.指针(5)
c语言·开发语言·指针·语法
爱吃大芒果18 分钟前
从零开始学 Flutter:状态管理入门之 setState 与 Provider
开发语言·javascript·flutter
清风拂山岗 明月照大江25 分钟前
简单文件 IO 示例:使用系统调用读写文件
开发语言·c++·算法
技术净胜27 分钟前
MATLAB文本文件读写实操fopen/fscanf/fprintf/fclose全解析
开发语言·matlab