C++实现冒泡排序
用到的工具函数
计算数组的长度
template<class T>
int length(T &arr) {
return sizeof(arr) / sizeof(arr[0]);
}
交换两个变量的值
template<class T>
void swap(T *a, T *b) {
T tmp = *b;
*b = *a;
*a = tmp;
}
冒泡排序函数
冒泡排序主函数
void bubbleSort(int *arr, int length) {
length--;
for (int i = 0; i < length; i++) {
for (int j = length; j >= i + 1; j--) {
if (arr[j] < arr[j - 1]) {
swap(&arr[j], &arr[j - 1]);
}
}
}
}
测试函数
void testBubbleSort() {
int a[] = {-1, 23, -5, -3, -6, 98, 66, 0, 44, 3, -3};
bubbleSort(a, length(a));
for (int i : a) {
std::cout << i << " ";
}
std::cout << std::endl;
}
测试结果
-6 -5 -3 -3 -1 0 3 23 44 66 98