结构体数组排序

来源:互联网 发布:vscode路径插件 编辑:程序博客网 时间:2024/05/01 00:30

      在对结构体数组排除时,首先确定需要排序数组的关键字,并且在排序过程中不是交换关键字的顺序,而是应该交换这个结构的地址,从而使得结构体中的每项能够对应的改变;其中对应的代码如下:

#include <stdio.h>#include <math.h>struct Line{int low;int high;};void quicksort(struct Line a[],int l,int h){    int i,j;    struct Line t;    i=l;    j=h;    t=a[l];    while(i<j)    {        while(i<j && a[j].low>t.low)            j--;        if(i<j)            a[i++]=a[j];        while(i<j && a[i].low<=t.low)            i++;        if(i<j)            a[j--]=a[i];    }    a[i]=t;    if(l<i-1) quicksort(a,l,i-1);    if(h>i+1) quicksort(a,i+1,h);}int main(){struct Line a[]={2,3,1,2,4,9,3,4};int i;quicksort(a,0,3);for (i=0;i<4;i++)printf("%d %d ",a[i].low,a[i].high);printf("\n");system("pause");return 0;}


原创粉丝点击