仅供一个记录,注释都在源码中
#include "stdafx.h"
/**
*依赖插入排序法求
*找任意数组中的N个最小值的位置
*array:目标数所在的数组
*arrLen:目标数组的长度
*mins:存放结果的数组
*minLen:想要的最小值个数
*
**/
void function(int array[],int arrLen,int mins[],int minLen)
{
for(int a=0;aj;n--)
{
mins[n]=mins[n-1];
}
mins[j]=i;
isChangedFlag=true;
break;
}
}
if(!isChangedFlag)
{
mins[i]=i;//将当前数放入到
}
}
//第二步:从第结果个数的后一个数开始比较
for(int z=(minLen);zj;n--)
{
mins[n]=mins[n-1];
}
mins[j]=z;
isChangedFlag=true;
break;
}
}
}
}
int main(int argc, char* argv[])
{
//使用演示
const int minLen=23;//要的个数
int array[]={1000,450,22,23,67,23,45,32,0,56,78,99,555,432,567,432,1455,2332,34324,4434,34,3434,342};//测试数组
int mins[minLen];//存放结果的数组(值所在的下标)
printf("当前的结果表中的值为:\n");
function(array,sizeof(array)/sizeof(array[0]),mins,minLen);
///*
for(int m=0;m