#include "stdafx.h"
void insertSort(int arr[], int size)
{
int i,j;
int temp;
for (i = 1; i<size;i++)
{
temp = arr[i];
j=i-1;
//与已排序的数逐一比较,大于temp时,该数移后
while((j>=0) && (arr[j] > temp)) //当first=0,j循环到-1时,由于[[短路求值]],不会运算array[-1]
{
arr[j+1] = arr[j];
j--;
}
arr[j+1] = temp; //被排序数放到正确的位置
}
}
int main(int argc, char* argv[])
{
int data[]={10,7,5,6,9,8,4,2,0,1,3,45,4};
int size=(sizeof(data)/sizeof(data[0]));
insertSort(data,size);
for(int i=0;i<size;i++)
{
printf("%d ",data[i]);
}
int aaa;
scanf("%d",&aaa);
return 0;
}
直接插入排序
最新推荐文章于 2024-03-19 18:50:33 发布