SortIndex

带索引的向量排序,包含升序和降序。如果参与排序的向量值有相同值,则这些相同值所对应的索引不排序,即排序算法是不稳定的,对相同值排序,排序后的索引顺序与排序之前的顺序不同。

函数接口声明如下:

参数

参数名

描述

取值范围

输入/输出

srcDst

指向原址操作向量的指针。

非空

输入/输出

dstIdx

指向排序后索引的指针。

非空

输出

len

向量长度。

(0, INT_MAX]

输入

返回值

错误码

错误码

描述

HMPP_STS_NULL_PTR_ERR

srcDst为空指针。

HMPP_STS_SIZE_ERR

len小于或等于0。

示例

#define BUFFER_SIZE_T 9
void Sort_Example() {
    uint8_t src[BUFFER_SIZE_T] = {255, 5, 254, 0, 253, 1, 252, 2, 251};
    int32_t *dstIdx = HMPPS_Malloc_32s(BUFFER_SIZE_T);
    int32_t i;
    HmppResult result = HMPPS_SortAscend_8u_I(src, dstIdx ,BUFFER_SIZE_T);
    if (result == HMPP_STS_NO_ERR) {
        printf("result = %d\n", result);
        printf("dst = ");
        for (i = 0; i < BUFFER_SIZE_T; i++) {
            printf("%d ", src[i]);
        }
        printf("\n");
        printf("dstIdx = ");
        for (i = 0; i < BUFFER_SIZE_T; i++) {
            printf("%d ", dstIdx[i]);
        }
        printf("\n");
    }
    HMPPS_Free(dstIdx);
}

运行结果:

result = 0
dst = 0 1 2 5 251 252 253 254 255
dstIdx = 3 5 7 1 8 6 4 2 0