C语言结构体快速排序算法实现 - quicksort2 函数详解
该函数是一个结构体快排,用于对一个结构体数组进行排序。其中,min和max分别表示需要排序的数组的最小下标和最大下标。函数中使用了一个结构体变量t来存储数组中第一个元素,即packages[min],然后使用双指针i和j来进行快排。在while循环中,先从右向左找到第一个小于t.num的元素,再从左向右找到第一个大于t.num的元素,然后交换这两个元素。最后将packages[min]和packages[i]交换,使得t.num在排序后的位置。然后递归调用quicksort2函数,对左半部分和右半部分进行排序。
void quicksort2(int min,int max){//结构体快排
int i,j;
struct Package t;
i=min;
j=max;
t=packages[min];
if(i>j){
return;
}
while(i<j){
while(packages[j].num<=t.num&&j>i){
j--;
}
while(packages[i].num>=t.num&&j>i){
i++;
}
struct Package z;
z=packages[i];
packages[i]=packages[j];
packages[j]=z;
}
packages[min]=packages[i];
packages[i]=t;
quicksort2(min,i-1);
quicksort2(i+1,max);
}
原文地址: https://www.cveoy.top/t/topic/f2gk 著作权归作者所有。请勿转载和采集!