當前位置:編程學習大全網 - 源碼下載 - c語言qsort源代碼

c語言qsort源代碼

想法:當值被排序時,下標也移動。這就需要將兩者聯系起來。為此創建壹個PAIR結構,並將兩者關聯在壹起。庫中的快速排序函數Qport可以省去排序的麻煩,指定Qport按照對中的數值大小對結構數組進行排序,使得排序結果中結構數組的下標和值仍然保持開頭的對應關系。

# include & ltSTDIO。H & gt

# include & ltstring.h & gt

# include & ltstdlib.h & gt

#定義N 8

typedef結構

{

int cj//數值

int px//下標

}對;

//qsort的輔助比較功能

int compare(const void *p,const void *q)

{

PAIR t 1 = *(PAIR *)p;

對t2= *(對*)q;

return(t 1 . CJ & gt;T2 . CJ);

}

int main()

{

PAIR a[N]= { };

int CJ[N]= { };

int px[N]= { };

Printf("請輸入%d個整數:",n);

for(int I = 0;我& ltn;i++)

{

scanf("%d ",& amp(甲[我]。CJ));

甲[我]。px = I+1;

//數組

cj[i] = a[i]。CJ;

px[i] = a[i]。px;

}

qsort((void *)a,N,sizeof(PAIR),compare);

printf(" \ n輸入的整數是:");

for(I = 0;我& ltn;i++)

{

printf("%d ",a[i]。CJ);

cj[i]=a[i]。CJ;

}

Printf("\n對應原下標:");

for(I = 0;我& ltn;i++)

{

printf("%d ",a[i]。px);

px[i] = a[i]。px;

}

putchar(' \ n ');

返回0;

}

  • 上一篇:開發教育軟件多少錢?
  • 下一篇:哈爾濱啤酒也是贊助了南非世界杯麽
  • copyright 2024編程學習大全網