/*
* 此程序用于实现插入排序
* 作者:zhy
* 时间:2021/7/21
*/
#include <stdio.h>
#include <stdlib.h>
// 插入排序实现
// 参数 array 排序数组的首地址
// 参数 len 参与排序元素的个数
void insertsort(int *array,int len);
int main(int argc,char *argv[])
{
int arr[]={44,3,38,5,47,15,36,26,27,2,46,4,19,50,48};
int len=sizeof(arr)/sizeof(int);
insertsort(arr,len); // 调用插入排序函数对数组排序。
// 显示排序结果。
int yy; for (yy=0;yy<len;yy++) printf("%2d ",arr[yy]); printf("\n");
}
void insertsort(int *array,int len)
{
if (len < 2) return;
int ii; // 正在被排序的元素下标
int jj; // 元素插入位置
int temp; // 存放待插入元素的值
for ( ii = 1; ii < len;ii++ )
{
temp = array[ii];
for (jj = ii - 1; jj >= 0; jj--)
{
// 如果当前位置元素大于已经排序好的前一元素,跳出循环
if (temp > array[jj]) break;
// 当前元素后移
array[jj + 1] = array[jj];
}
array[jj + 1] = temp;
}
}
实现插入排序
最新推荐文章于 2024-09-12 19:02:20 发布