原理
选择排序算法原理如下:
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始(或末尾)的位置再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾(或开头)重复上述两个步骤,直至待排序元素的个数为0
#define SWAP(a, b) \
{ \
a = a ^ b; \
b = a ^ b; \
a = a ^ b; \
}
void selectSort(int *arr
, int size
)
{
int i
, j
, min
;
for (i
= 0; i
< size
; ++i
)
{
min
= i
;
for (j
= i
+ 1; j
< size
; ++j
)
{
if (*(arr
+ j
) < *(arr
+ min
))
{
min
= j
;
}
}
if (min
!= i
)
{
SWAP(*(arr
+ min
), *(arr
+ i
));
}
}
}
转载请注明原文地址: https://mac.8miu.com/read-504884.html