C++泛型冒泡排序代码

文件:

// 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 时数组将原封不动(函数直接返回)。

上一篇:PostgreSQL学习总结(五)——函数和操作符[一]


下一篇:SpringBoot:ERROR: column “***“ is of type numeric but expression is of type character varying