opencv3冒泡排序算法

C语言排序冒泡函数

我们在做图像处理经常要对函数进行特定的操作,比如滤除过大过小的轮廓,寻找不同斜率的直线,这时排序算法必不可少,下面这个函数是基于C++的opencv写的一个冒泡排序算法,主要就是输入一个一维数组和数组长度,返回排序好的数组,从大到小及从小到大,可以在函数里改那个大于小于号。


/***** 冒泡排序*****/
vector<int> bubble_sort(vector<int> arr, int len)
{
    vector<int> return_arr(len);
    if (len>1)
    {
        for (int i = 0; i < len; i++)
        {
            return_arr[i] = arr[i];
        }
        int i, j;
        for (i = 0; i < len - 1; i++)    //外层循环控制趟数,总趟数为len-1
        for (j = 0; j < len - 1 - i; j++)  //内层循环为当前i趟数 所需要比较的次数
        if (return_arr[j] > return_arr[j + 1])
            swap(return_arr[j], return_arr[j + 1]);
    }
    return return_arr;
}

猜你喜欢

转载自blog.csdn.net/mao_hui_fei/article/details/80984200