该函数是一个结构体快排,用于对一个结构体数组进行排序。其中,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);
}
C语言结构体快速排序算法实现 - quicksort2 函数详解

原文地址: https://www.cveoy.top/t/topic/f2gk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录