当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

新写了一个简单的索引排序

    索引排序的意思是,比如 学号1-10的10个同学的考试分数。按照分数的高低,把他们的学号(位置)打印出来。

    呵呵,这个还是非常有用的。

 

    #include <stdio.h>
    #include <stdlib.h>

    int IndexSort(int * pIndex, int * buffer , int bufferlength)
    {
     float ftemp;
     int itemp;
     bool swap = false;
     for(int j = 0;j < bufferlength;j++)
     {
      swap = false;
      ftemp =(float)buffer[pIndex[j]];
      for(int i =j +1; i < bufferlength ; i++)
      {
       if(ftemp < buffer[pIndex[i]])
       {
        itemp = i;
        ftemp =(float) buffer[pIndex[i]];
        swap = true;
       }
      }
      if(swap)
      {
       int iswap;
       iswap = pIndex[itemp];
       pIndex[itemp] = pIndex[j] ;
       pIndex[j] = iswap;
      }
                      }
     return 0;
    }
    int main()
    {
     int index[10];
     int arr[10];
     for(int i=0;i<10;i++)
     {
      index[i]=i;
      arr[i]=random()%100;
     }
     for(int i=0;i<10;i++)
     {
      printf("%d \t %d \n",index[i],arr[i]);
     }
     IndexSort(index,arr,10);
     for(int i=0;i<10;i++)
     {
      printf("%d \t %d \n",index[i],arr[i]);
     }
     exit(0) ;
    }

    新的index里面放的是排序完的结果。呵呵但愿大家能明白。

相关内容
赞助商链接