void SortDat() 这样的代码有没有问题?

来源:百度知道 编辑:UC知道 时间:2024/05/12 15:45:10
void SortDat()

{

int i,j;

PRO swap;

for(i=0;i<MAX-1;I++)

for(j=0;j<MAX-1-I;J++)

{ if(sell[j].je<SELL[J+1].je)

{swap=sell[j];

sell[j]=sell[j+1];

sell[j+1]=swap;

}

if(strcmp(sell[j].dm,sell[j+1].dm)<0&&sell[j].je==SELL[J+1].je)

{

swap=sell[j];

sell[j]=sell[j+1];

sell[j+1]=swap;

}

}

}

快速排序源代码加注释

#include <stdio.h>
#define MAX 255
int R[MAX];
int Partition(int i,int j)
{/* 调用Partition(R,low,high)时,对R[low..high]做划分,*/
/* 并返回基准记录的位置 */
int pivot=R[i]; /* 用区间的第1个记录作为基准 */
while(i<j){ /* 从区间两端交替向中间扫描,直至i=j为止 */
while(i<j&&R[j]>=pivot) /* pivot相当于在位置i上 */
j--; /* 从右向左扫描,查找第1个关键字小于pivot.key的记录R[j] */
if(i<j) /* 表示找到的R[j]的关键字<pivot.key */
R[i++]=R[j]; /* 相当于交换R[i]和R[j],交换后i指针加1 */
while(i<j&&R[i]<=pivot) /* pivot相当于在位置j上*/
i++; /* 从左向右扫描,查找第1个关键字大于pivot.key的记录R[i] */
if(i<j) /* 表示找到了R[i],使R[i].key>pivot.key */
R[j--]=R[i]; /* 相当于交换R[i]和R[j],交换后j指针减1 */
} /* endwhile */
R[i]=pivot; /* 基准记录已被最后定位*/
return i;
} /* end of partition */

void Quick_Sort(int low,int high)
{ /* 对R[low..high