功能:对输入的数组进行排序,返回的是,从小到大数组对应于原数组的下标(序号) 。比如 1 7 3 2 9 返回:0 3 2 1 4
思想:在函数中动态开辟一个数组,用于存储下标。初始化的时候为0-(n-1)。数组值在排序的过程中,下标值也跟着排序。最后返回指向下标数组的指针。
#include<stdio.h>
#include<malloc.h>
int *sortindex(int a[],int n)
{
int *p;
int temp;
p=(int*)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
p[i]=i;
for(i=0;i<n;i++)
for(int j=0;j<n;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
for(i=0;i<n;i++)
printf("%3d",p[i]);
printf("\n");
return p;
free(p);
}
void main()
{