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;
}