#include<stdio.h>
#include<malloc.h>
#include <stdlib.h>
int *sortIndex(int b[], int n)
{
int *m;
int temp;
m = (int*)malloc(sizeof(int)*n);
for (int i = 0; i < n; i++)
{
m[i] = i;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j<n-1; j++)
{
if (b[j]>b[j + 1])
{
temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
temp = p[j];
m[j] = p[j + 1];
m[j + 1] = temp;
}
}
}
for (int i = 0; i < n; i++)
{
printf("%3d", m[i]);
}
printf("\n");
return m;
free(m);
}
void main()
{
int b[5] = { 5, 4, 3, 2, 1 };
int *m;
m= sortIndex(b, 5);//返回排序后原序号
for (size_t i = 0; i<5; i++)
printf("%3d", b[i]);//此时输出的数组已经为排好序后的数组
printf("\n");
system("pause");
return ;
}