文件:
// File: bubbleSort.h
#ifndef _BUBBLESORT_H_
#define _BUBBLESORT_H_
template <typename numeric>
void bubbleSort(numeric* arr, int size, int direction) {
if (!direction)
return;
else {
direction = (direction < 0) ? -1 : 1;
numeric temp;
for (int i = 0; i < size-1; i++) {
for (numeric* j = arr; j < arr+size-i-1; j++) {
if (*j*direction > *(j+1)*direction) {
temp = *j;
*j = *(j+1);
*(j+1) = temp;
}
}
}
return;
}
}
#endif
调用方法:bubbleSort( 任何数字类型的数组头, int 数组长, int 方向 );
其中“方向”规定为:输入正数时将数组递增排序,输入负数时将数组递减排序,输入 0 时数组将原封不动(函数直接返回)。