数组冒泡排序
2017-11-18 17:50
218 查看
希望实现一种比较通用的,将以数组的方式组织的一些数据冒泡排序。
USP_UINT32 USP_AlgSortBubbleArray(USP_VOID *pArray, USP_UINT32 uiNum, USP_UINT32 uiElemSize, USPArrayElemCmpFun pFunCmp) { USP_UINT32 i, j; USP_UINT32 uiRet; USP_UINT32 uiLoc; USP_VOID *pObjA; USP_VOID *pObjB; USP_VOID *pSwapTemp; uiRet = uspAlgSortBubbleArrayParamCheck(pArray, uiNum, uiElemSize, pFunCmp); if (USP_OK != uiRet) { USP_LOGOUT(USP_LOG_ERROR, uiRet, "[USP_ALG]: Bubble sort array, param is invalid."); return uiRet; } pSwapTemp = (USP_VOID *)USP_MALLOC((USP_SIZE_T)uiElemSize); for (i = 0; i < uiNum - 1; i++) { for (j = 0; j < (uiNum - 1 - i); j++) { uiLoc = j * uiElemSize; pObjA = (USP_VOID *)(&((USP_CHAR *)pArray)[uiLoc]); pObjB = (USP_VOID *)(&((USP_CHAR *)pArray)[uiLoc + uiElemSize]); if (0 < pFunCmp(pObjA, pObjB, uiElemSize)) { uspAlgSortObjectSwap(pObjA, pObjB, uiElemSize, pSwapTemp); } } } USP_FREE(pSwapTemp); return USP_OK; }
相关文章推荐
- 定义一个数组工具类!数组选择排序、冒泡排序、获取最大、最小值!
- c#连续输入整型数组(冒泡排序)
- js数组冒泡排序,快速排序的原理以及实现
- 数组随机取值,随机红包,冒泡排序
- Java 一维数组,二维数组的定义声明 以及一维数组的 冒泡排序 以及二维数组的鞍点
- 09.15,一维数组,冒泡排序
- 例题:输入学生的各项资料,然后根据学生的分数,重新排序。重新复习结构体,集合,数组,for循环,冒泡排序,水平符的使用。
- iosOC可变数组选择,冒泡排序
- C语言 输入整数数组 冒泡排序
- 用模板写冒泡排序-数组
- 黑马程序员—数组最大值、最小值、选择排序、冒泡排序
- 第十六周项目1数组冒泡排序 (指针)
- Day6-二维数组,冒泡排序解析,数组为参数的传递
- C#--第2周实验--任务12--输入10个数存入数组中,然后实现冒泡排序
- 数组的冒泡排序及拷贝
- C语言学习5:数组定义,数组名的含义,数组作为函数参数,数组赋值,数组左右移动,最大最小,反向遍历,冒泡排序,sizeof 和strlen区别,gets和puts,strcpy,strcat,strcmp,strchr,strstr,strlen
- c语言 冒泡排序 使用数组方式 冒泡函数函数名为void bubble( )
- 冒泡排序之java数组实现
- day05_数组_冒泡排序_Arrays_20150805
- sort数组冒泡排序