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);
}
}
一种双向选择排序
最新推荐文章于 2025-12-29 22:03:17 发布
本文详细介绍了快速排序算法的实现过程,通过`selectionSort_int`函数展示了如何进行选择排序,以及`Tjianhuan_int`函数实现的元素交换操作。在排序过程中,算法不断寻找最小值和最大值并进行交换,确保了数据的有效排序。
18万+

被折叠的 条评论
为什么被折叠?



