ruǎn jiàn : xué lèi > kuài pái 
mùlù
gài shù
   kuài pái (quicksort) shì zhǒng yòu xiào de pái suàn suī rán suàn zài zuì huài de qíng kuàng xià yùn xíng shí jiān wéi o(n^2), dàn yóu píng jūn yùn xíng shí jiān wéi o(nlogn), bìng qiě zài nèi cún shǐ yòngchéng shí xiàn xìng shàng biǎo xiàn yōu xiùyóu shì duì kuài pái suàn jìn xíng suí huà de néngshǐ kuài pái zài bān qíng kuàng xià shì zuì shí yòng de pái fāng zhī
   kuài pái bèi rèn wéi shì dāng qián zuì yōu xiù de nèi pái fāng
shí xiàn
   kuài pái de shí xiàn fēn zhì fēn wéi sān zhòujiǎ shè dài pái de liè wéi l[m..n]。
   fēn jiě liè l[m..n] bèi huàfēn chéng liǎng néng wéi kōng de liè l[m..pivot-1] l[pivot+1..n], shǐ l[m..pivot-1] de měi yuán jūn xiǎo huò děng l[pivot], tóng shí l[pivot+1..n] de měi yuán jūn l[pivot]。 zhōng l[pivot] chēng wéi zhè tàng fēn zhōng de zhù yuán chēng wéi shū zhóuzhī diǎn)。
   jiě juétōng guò guī diào yòng kuài pái duì liè l[m..pivot-1] l[pivot+1..r] pái
   bìngyóu liǎng liè shì jiù pái desuǒ duì men de bìng yào cāo zuòzhěng liè l[m..n] pái hǎo
xìng zhì
  nèi pái
   kuài pái shì zhǒng nèi pái fāng jiù shì shuō kuài pái de pái duì xiàng shì nèi cún de shù
   jiào pái
   kuài pái què dìng yuán wèi zhì de fāng yuán zhī jiān guān jiàn xiǎo de jiào
   suǒ yòu jiào fāng de pái fāng de shí jiān xià jiè huì o(nlogn)。 zhè jié lùn de zhèng míngqǐng cān kǎo yòu guān suàn de shū suàn dǎo lùn 8 zhāng
   kuài pái zài xiǎng qíng kuàng xiànéng yán dào o(nlogn) de xià jiè bān qíng kuàng xià kuài pái suí huà kuài pái de píng jūn qíng kuàng xìng néng dào liǎo o(nlogn)。
   wěn dìng xìng
   kuài pái shì zhǒng wěn dìng de pái fāng jiǎn dān shuōyuán a1,a2 de guān jiàn yòu a1.key=a2.key, wěn dìng de pái fāng néng bǎo zhèng a1,a2 zài pái hòu wéi chí yuán lái de wèi zhì xiān hòu guān
   yuán pái
   zài pái de cāo zuò guò chéng zhōngchú chéng yùn xíng shí xiàn de kōng jiān xiāo fèi guī zhàn), kuài pái suàn zhǐ xiāo hào què dìng shù liàng de kōng jiān s(1), cháng shù kōng jiān)。
   zhè xìng zhì de zài zài nèi cún kōng jiān shòu dào xiàn zhì de tǒng mcu) zhōng kuài pái néng gòu hěn hǎo gōng zuò
shí kōng
   kuài pái měi jiāng dài pái shù fēn wéi liǎng fēnzài xiǎng zhuàng kuàng xiàměi jiāng dài pái shù huàfēn chéng děng cháng liǎng fēn yào logn huàfēn
   ér zài zuì huài qíng kuàng xià shù jīng yòu huò zhì yòu de qíng kuàng xiàměi huàfēn zhǐ néng jiǎn shǎo yuán kuài pái jiāng xìng tuì huà wéi mào pào pái suǒ kuài pái shí jiān xià jiè wéi o(nlogn), zuì huài qíng kuàng wéi o(n^2)。 zài shí yìng yòng zhōng kuài pái de píng jūn shí jiān wéi o(nlogn)。
   kuài pái zài duì liè de cāo zuò guò chéng zhōng zhǐ huā fèi cháng shù de kōng jiānkōng jiān s(1)。
   dàn yào zhù guī zhàn shàng yào huā fèi zuì shǎo logn zuì duō n de kōng jiān
suí huà suàn
   kuài pái de zuì huài qíng kuàng měi huàfēn duì zhù yuán de xuǎn běn de kuài pái xuǎn yuán zuò wéi zhù yuánzhè yàng zài shù jīng yòu de qíng kuàng xiàměi huàfēn jiāng dào zuì huài de jiēguǒ zhǒng jiào cháng jiàn de yōu huà fāng shì suí huà suàn suí xuǎn yuán zuò wéi zhù yuánzhè zhǒng qíng kuàng xià suī rán zuì huài qíng kuàng réng rán shì o(n^2), dàn zuì huài qíng kuàng zài lài shū shù ér shì yóu suí hán shù zhí jiāshí shàngsuí huà kuài pái dào lùn zuì huài qíng kuàng de néng xìng jǐn wéi 1/(2^n)。 suǒ suí huà kuài pái duì jué duō shù shū shù dào o(nlogn) de wàng shí jiān wèi qián bèi zuò chū liǎo jīng de zǒng jié suí huà kuài pái mǎn rén bèi de rén pǐn qiú
   suí huà kuài pái de wéi quē diǎn zài dàn shū shù zhōng yòu hěn duō de xiāng tóng shù suí huà de xiào guǒ jiāng zhí jiē jiǎn ruòduì xiàn qíng kuàng duì n xiāng tóng de shù pái suí huà kuài pái de shí jiān jiāng háo wèn de jiàng dào o(n^2)。
jiǎn shǎo guī zhàn shǐ yòng de yōu huà
   kuài pái de shí xiàn yào xiāo hào guī zhàn de kōng jiānér duō shù qíng kuàng xià huì tōng guò shǐ yòng tǒng guī zhàn lái wán chéng guī qiú jiězài yuán shù liàng jiào shíduì tǒng zhàn de pín fán cún huì yǐng xiǎng dào pái de xiàolǜ
   zhǒng cháng jiàn de bàn shì shè zhì zhízài měi guī qiú jiě zhōng guǒ yuán zǒng shù zhè zhí fàng kuài pái diào yòng jiǎn dān de pái guò chéng wán chéng gāi liè de pái zhè yàng de fāng jiǎn shǎo liǎo duì tǒng guī zhàn de pín fán cún jié shěng liǎo shí jiān de xiāo fèi
   bān de jīng yàn biǎo míng zhí jiào xiǎo de zhípái suàn cǎi yòng xuǎn chā děng jǐn còujiǎn jié de pái cān kǎo de fāng 'àn zhí t=10, pái suàn yòng xuǎn pái
   zhí yào tài fǒu shěng xià de cún tǒng zhàn de shí jiānjiāng huì bèi jiǎn dān pái suàn jiào duō de shí jiān huā fèi suǒ xiāo
   lìng cān kǎo de fāng shì xíng jiàn zhàn guī guò chéngdàn shí jīng yàn biǎo míngshōu xiào míng xiǎn shè zhì zhí
c++ chéng
   xià shì yòng c++ biān xiě de kuài pái chéng suī rán c biāo zhǔn zhōng gōng liǎo kuài pái dàn zuò wéi kuài pái de jiè shàoyuán chéng de dài gèng jiā yòu zhù duì kuài pái yùn xíng guò chéng de fēn
   zài zhè chéng zhōngduì shù x[] de 0~n-1 hào yuán de pái chū shǐ diào yòng wéi: quicksort(x,0,n-1);
  intquicksort_partition(intl[],intlbb,intubb)
  {
  // suí huà
  intirndpivid;
  srand(unsigned(time(0)));
  irndpivid=(rand()%(ubb-lbb+1))+lbb;
  swap(l[irndpivid],l[ubb]);
  // kuài pái
  intipivvalue;
  inti;
  intipivpos;
  ipivvalue=l[ubb];
  ipivpos=lbb-1;
  for(i=lbb;i<=ubb-1;i++)
  {
  if(l[i]<=ipivvalue)
  {
  ipivpos++;
  swap(l[ipivpos],l[i]);
  }
  }
  ipivpos++;
  swap(l[ipivpos],l[ubb]);
  returnipivpos;
  }
  voidquicksort(intl[],intlbb,intubb)
  {
  intipiv;
  if(lbb<ubb)
  {
  ipiv=quicksort_partition(l,lbb,ubb);
  quicksort(l,lbb,ipiv-1);
  quicksort(l,ipiv+1,ubb);
  }
  return;
  }
shǐ yòng c++ biāo zhǔn de kuài pái hán shù
  c++ de biāo zhǔn stdlib.h zhōng gōng liǎo kuài pái hán shù
   qǐng zài shǐ yòng qián jiā duì stdlib.h de yǐn yòng: #include<cstdlib> huò #include<stdlib.h>
  qsort(void*base,size_tnum,size_twidth,int(*)compare(constvoid*elem1,constvoid*elem2))
   cān shù biǎo
  *base: dài pái de yuán shù xià biāo 0 )。
  num: yuán de shù liàng
  width: měi yuán de nèi cún kōng jiān xiǎo jié wéi dān wèi)。 yòng sizeof()
  int(*)compare: zhǐ xiàng jiào hán shù。 *elem1*elem2: zhǐ xiàng dài jiào de shù
   jiào hán shù de fǎn huí zhí
   fǎn huí zhí shì int lèi xíngquè dìng elem1 elem2 de xiāng duì wèi zhì
  elem1 zài elem2 yòu fǎn huí zhèng shù, elem1 zài elem2 zuǒ fǎn huí shù
   kòng zhì fǎn huí zhí què dìng shēng / jiàng
   shēng pái de chéng
  intcompare(constvoid*elem1,constvoid*elem2)
  {
  return*((int*)(elem1))-*((int*)(elem2));
  }
  intmain()
  {
  inta[100];
  qsort(a,100,sizeof(int),compare);
  return0;
  }
pascal chéng
  zhè chéng zhōng jiǎ shè dài pái de shù shì quán biàn liàng a[]。
  procedureqsort(s,t:longint);
  var
  i,j,x,temp:longint;
  begin
  i:=s;j:=t;x:=a[(i+j)div2];
  repeat
  whilea[i]<xdoinc(i);{ zhǎo zuǒ biān de }
  whilea[j]>xdodec(j);{ zhǎo yòu biān xiǎo de }
  ifi<=jthen{ jiāo huàn }
  begin
  temp:=a[i];a[i]:=a[j];a[j]:=temp;
  inc(i);dec(j);
  end;
  untili>j;
  ifs<jthenqsort(s,j);
  ifi<tthenqsort(i,t);
  end;
bāo hán cí
kuài pái suàn kuài pái chéng duàn