一.什么是插入排序
把数据分为有序和无序俩个部分,将无序部分中的一个数据插入到已排好的有序部分中,有序部分从而变成一个新的、排好数据数量增1的有序数据,直到数据全部排序完成。
插入排序一般适用于小型数据。大型数据性能较差。
二.实现思路
从第二个元素开始,逐一遍历无序部分数据。把无序部分元素与有序元素逐一比较,找到插入位置。
找到插入位置后插入当前元素至正确位置,前序元素后移。重复上述步骤,直至数组全排序。
动画演示:
三.实验代码
#include <stdio.h>void main(void)
{int data[10];int j,i,k;int temp;printf("Please input data:\n");for(i=0;i<10;i++){scanf("%d",&data[i]);}for(i=1;i<10;i++){k = data[i];j = i-1;while ((j>=0)&(data[j]>k)){data[j+1] = data[j];j--;}data[j+1] = k;}printf("**************************\n");for(i=0;i<10;i++){printf("%d\n",data[i]);}}
四.视频教程
92.插入算法_哔哩哔哩_bilibili