原理
代码实现
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//从小到大排序
void insertSort(int arr[],int len){
for(int i = 0; i < len;i++){
if(arr[i] < arr[i-1] ){ //判断当前元素是否比前一个大(如果满足条件将当前元素报错将当前元素前面的元素向后移动)
int temp = arr[i];//利用temp保存当前的i号位置的数据值
int j = i -1;//j就是当前元素前一个元素的位置
for(; j >= 0 && temp < arr[j] ; j--)
{
//将当前元素之前的元素数据进行后移的操作
arr[j+1] = arr[j];//
}
//将j+1的位置的数据,赋值为temp
arr[j+1] = temp;//将移动后的多出了的位置赋值
}
}
}
void printArray(int arr[],int len)
{
for(int i = 0; i < len;i++){
printf ("%d\n",arr[i]);
}
}
void test01(){
int arr[] = {5,9,1,3,7,2,18,32,11,10,15};
int len = sizeof(arr) / sizeof(int);
insertSort(arr,len);
//打印数组
printArray(arr,len);
}
int main () {
test01();
printf ("Hello, World!\n");
return 0;
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_44757034/article/details/120536745
内容来源于网络,如有侵权,请联系作者删除!