static inline void Tjianhuan_int(int *a,int *b)
{
register int t = *a;
*a = *b;
*b = t;
}
void selectionSort_int(int *data_buffer,int lenth)
{
int *dataP_head = &data_buffer[0];
int *dataP_tail = &data_buffer[(lenth-1)];
for(int i=0;i<((lenth)/2);i++,dataP_head++,dataP_tail--)
{
int *Min = dataP_head;
int *Max = dataP_tail;
if(*Min>*Max )
{
Tjianhuan_int(Min,Max);
}
int *cmp_p= Min+1;
for(int j=i+1;j<(lenth-1-i);j++,cmp_p++)
{
if(*Min > *cmp_p) {Min = cmp_p;}
else
if(*Max < *cmp_p ) {Max = cmp_p;}
}
Tjianhuan_int(Min, dataP_head);
Tjianhuan_int(Max, dataP_tail);
}
}
一种双向选择排序
最新推荐文章于 2024-06-28 17:21:32 发布