ÔÆÌ⺣ - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µ±Ç°Î»ÖãºÊ×Ò³ > Êý¾Ý½á¹¹ÊµÑ鱨¸æ- ´ð°¸»ã×Ü

Êý¾Ý½á¹¹ÊµÑ鱨¸æ- ´ð°¸»ã×Ü

  • 62 ´ÎÔĶÁ
  • 3 ´ÎÏÂÔØ
  • 2026/4/23 3:51:57

QuickSort(R,pivotpos+1,high); //¶ÔÓÒÇø¼äµÝ¹éÅÅÐò } }

//======Ö±½ÓÑ¡ÔñÅÅÐò======== void SelectSort(SeqList R) {

int i,j,k;

for(i=1;i

for(j=i+1;j<=n;j++) //ÔÚµ±Ç°ÎÞÐòÇøR[i¨En]ÖÐÑ¡key×îСµÄ¼Ç¼R[k] if(R[j].key

k=j; //k¼ÇÏÂĿǰÕÒµ½µÄ×îС¹Ø¼ü×ÖËùÔÚµÄλÖà if(k!=i) { // //½»»»R[i]ºÍR[k] R[0]=R[i]; R[i]=R[k]; R[k]=R[0]; } //endif } //endfor }

//==========´ó¸ù¶Ñµ÷Õûº¯Êý=======

void Heapify( SeqList R,int low,int high)

{ // ½«R[low..high]µ÷ÕûΪ´ó¸ù¶Ñ£¬³ýR[low]Í⣬ÆäÓà½áµã¾ùÂú×ã¶ÑÐÔÖÊ int large; //largeÖ¸Ïòµ÷Õû½áµãµÄ×ó¡¢ÓÒº¢×Ó½áµãÖйؼü×ֽϴóÕß RecType temp=R[low]; //ÔÝ´æµ÷Õû½áµã

for(large=2*low; large<=high;large*=2){ //R[low]Êǵ±Ç°µ÷Õû½áµã

//Èôlarge>high,Ôò±íʾR[low]ÊÇÒ¶×Ó£¬µ÷Õû½áÊø£»·ñÔòÏÈÁîlargeÖ¸ÏòR[low]µÄ×óº¢×Ó

if(large

large++; //ÈôR[low]µÄÓÒº¢×Ó´æÔÚÇҹؼü×Ö´óÓÚ×óÐֵܣ¬ÔòÁîlargeÖ¸ÏòËü

//ÏÖÔÚR[large]Êǵ÷Õû½áµãR[low]µÄ×óÓÒº¢×Ó½áµãÖйؼü×ֽϴóÕß if(temp.key>=R[large].key) //tempʼÖÕ¶ÔÓ¦R[low]

break; //µ±Ç°µ÷Õû½áµã²»Ð¡ÓÚÆäº¢×Ó½áµãµÄ¹Ø¼ü×Ö£¬½áÊøµ÷Õû R[low]=R[large]; //Ï൱ÓÚ½»»»ÁËR[low]ºÍR[large]

low=large; //ÁîlowÖ¸Ïòеĵ÷Õû½áµã£¬Ï൱ÓÚtempÒÑɸϵ½largeµÄλÖà }

R[low]=temp; //½«±»µ÷Õû½áµã·ÅÈë×îÖÕλÖÃÉÏ }

//==========¹¹Ôì´ó¸ù¶Ñ========== void BuildHeap(SeqList R)

{ //½«³õʼÎļþR[1..n]¹¹ÔìΪ¶Ñ int i;

for(i=n/2;i>0;i--)

Heapify(R,i,n); //½«R[i..n]µ÷ÕûΪ´ó¸ù¶Ñ }

//==========¶ÑÅÅÐò=========== void HeapSort(SeqList R)

{ //¶ÔR[1..n]½øÐжÑÅÅÐò£¬²»·ÁÓÃR[0]×öÔÝ´æµ¥Ôª int i;

BuildHeap(R); //½«R[1..n]¹¹ÔìΪ³õʼ´ó¸ù¶Ñ

for(i=n;i>1;i--){ //¶Ôµ±Ç°ÎÞÐòÇøR[1..i]½øÐжÑÅÅÐò£¬¹²×ön-1ÌË¡£ R[0]=R[1]; R[1]=R[i];R[i]=R[0]; //½«¶Ñ¶¥ºÍ¶ÑÖÐ×îºóÒ»¸ö¼Ç¼½»»»

Heapify(R,1,i-1); //½«R[1..i-1]ÖØÐµ÷ÕûΪ¶Ñ£¬½öÓÐR[1]¿ÉÄÜÎ¥·´¶ÑÐÔÖÊ¡£ } }

//=====½«Á½¸öÓÐÐòµÄ×ÓÐòÁÐR[low..m]ºÍR[m+1..high]¹é²¢³ÉÓÐÐòµÄÐòÁÐR[low..high]== void Merge(SeqList R,int low,int m,int high) {

int i=low,j=m+1,p=0; //Öóõʼֵ RecType *R1; //R1Ϊ¾Ö²¿Á¿

R1=(RecType *)malloc((high-low+1)*sizeof(RecType)); //ÉêÇë¿Õ¼ä

while(i<=m && j<=high) //Á½¸ö×ÓÐòÁзǿÕʱȡÆäСÕßÊä³öµ½R1[p]ÉÏ R1[p++]=(R[i].key<=R[j].key)? R[i++]:R[j++];

while(i<=m) //ÈôµÚÒ»¸ö×ÓÐòÁзǿգ¬Ôò¸´ÖÆÊ£Óà¼Ç¼µ½R1 R1[p++]=R[i++];

while(j<=high) //ÈôµÚ¶þ¸ö×ÓÐòÁзǿգ¬Ôò¸´ÖÆÊ£Óà¼Ç¼µ½R1ÖÐ R1[p++]=R[j++];

for(p=0,i=low;i<=high;p++,i++)

R[i]=R1[p]; //¹é²¢Íê³Éºó½«½á¹û¸´ÖÆ»ØR[low..high] }

//=========¶ÔR[1..n]×öÒ»Ì˹鲢ÅÅÐò======== void MergePass(SeqList R,int length) {

int i;

for(i=1;i+2*length-1<=n;i=i+2*length)

Merge(R,i,i+length-1,i+2*length-1); //¹é²¢³¤¶ÈΪlengthµÄÁ½¸öÏàÁÚµÄ×ÓÐòÁÐ

if(i+length-1

//×¢Ò⣺Èôi¡ÜnÇÒi+length-1¡Ýnʱ£¬ÔòÊ£ÓàÒ»¸ö×ÓÐòÁÐÂÖ¿Õ£¬ÎÞÐë¹é²¢ }

//========== ×Ôµ×ÏòÉ϶ÔR[1..n]×ö¶þ·¹é²¢ÅÅÐò=============== void MergeSort(SeqList R) {

int length;

for(length=1;length

MergePass(R,length); //ÓÐÐò³¤¶È¡ÝnʱÖÕÖ¹ }

//==========ÊäÈë˳Ðò±í======== void input_int(SeqList R) { int i;

printf(\ scanf(\

printf(\ for(i=1;i<=n;i++)

scanf(\}

//==========Êä³ö˳Ðò±í======== void output_int(SeqList R) {

int i;

for(i=1;i<=n;i++)

printf(\}

//==========Ö÷º¯Êý====== void main() {

int i; SeqList R; input_int(R);

printf(\ printf(\ printf(\ printf(\

printf(\ printf(\ printf(\ printf(\

printf(\ scanf(\ÊäÈëÕûÊý1-7£¬Ñ¡ÔñÅÅÐò·½Ê½ switch (i){

case 1: InsertSort(R); break; //ֵΪ1£¬Ö±½Ó²åÈëÅÅÐò case 2: BubbleSort(R); break; //ֵΪ2£¬Ã°ÅÝ·¨ÅÅÐò case 3: QuickSort(R,1,n); break; //ֵΪ3£¬¿ìËÙÅÅÐò

case 4: SelectSort(R); break; //ֵΪ4£¬Ö±½ÓÑ¡ÔñÅÅÐò case 5: HeapSort(R); break; //ֵΪ5£¬¶ÑÅÅÐò

case 6: MergeSort(R); break; //ֵΪ6£¬¹é²¢ÅÅÐò case 7: exit(0); //ֵΪ7£¬½áÊø³ÌÐò }

printf(\ output_int(R); }

ʵÑé½á¹û£º

Please input num(int):10 Plase input 10 integer:265 301 751 129 937 863 742 694 76 438 ******** Select ********** 1: Insert Sort 2: Bubble Sort 3: Quick Sort 4: Straight Selection Sort 5: Heap Sort 6: Merge Sort 7: Exit ***************************

1 129, 265, 301, 751, 937, 863, 742, 694, 76, 438, 129, 265, 301, 751, 863, 937, 742, 694, 76, 438, 129, 265, 301, 742, 751, 863, 937, 694, 76, 438, 129, 265, 301, 694, 742, 751, 863, 937, 76, 438, 76, 129, 265, 301, 694, 742, 751, 863, 937, 438, 76, 129, 265, 301, 438, 694, 742, 751, 863, 937, Sort reult: 76, 129, 265, 301, 438, 694, 742, 751, 863, 937, 2

76,265,301,751,129,937,863,742,694,438, 76,129,265,301,751,438,937,863,742,694, 76,129,265,301,438,751,694,937,863,742, 76,129,265,301,438,694,751,742,937,863, 76,129,265,301,438,694,742,751,863,937,

Sort reult: 76, 129, 265, 301, 438, 694, 742, 751, 863, 937, 3

76,129,265,751,937,863,742,694,301,438, 76,129,265,751,937,863,742,694,301,438,

76,129,265,438,301,694,742,751,863,937, 76,129,265,301,438,694,742,751,863,937, 76,129,265,301,438,694,742,751,863,937, 76,129,265,301,438,694,742,751,863,937,

Sort reult: 76, 129, 265, 301, 438, 694, 742, 751, 863, 937, 4

76,301,751,129,937,863,742,694,265,438, 76,129,751,301,937,863,742,694,265,438, 76,129,265,301,937,863,742,694,751,438, 76,129,265,301,438,863,742,694,751,937, 76,129,265,301,438,694,742,863,751,937, 76,129,265,301,438,694,742,751,863,937,

Sort reult: 76, 129, 265, 301, 438, 694, 742, 751, 863, 937, 5

863,694,751,265,438,301,742,129, 76,937, 751,694,742,265,438,301, 76,129,863,937, 742,694,301,265,438,129, 76,751,863,937, 694,438,301,265, 76,129,742,751,863,937, 438,265,301,129, 76,694,742,751,863,937, 301,265, 76,129,438,694,742,751,863,937, 265,129, 76,301,438,694,742,751,863,937, 129, 76,265,301,438,694,742,751,863,937, 76,129,265,301,438,694,742,751,863,937,

Sort reult: 76, 129, 265, 301, 438, 694, 742, 751, 863, 937, 6

265,301,129,751,863,937,694,742, 76,438, 129,265,301,751,694,742,863,937, 76,438, 129,265,301,694,742,751,863,937, 76,438, 76,129,265,301,438,694,742,751,863,937,

Sort reult: 76, 129, 265, 301, 438, 694, 742, 751, 863, 937, 7

Press any key to continue

ÔËÐÐËٶȱȽϣº

Ö±½ÓÅÅÐò ðÅÝÅÅÐò Ö±½Ó²åÈë ðÅÝÅÅÐò ¿ìËÙÅÅÐò

ʱ¼ä¸´ÔÓ¶È O(n2)£¬ÆäÖпìËÙÅÅÐòЧÂÊ½Ï¸ß ÆäËüµÄЧÂʲ¶à ¶ÑÅÅÐò ¹é²¢ÅÅÐò

ʱ¼ä¸´ÔÓ¶È (nlogn) ,ƽ¾ùЧÂʶ¼ºÜ¸ß

ÐĵÃÌå»á£º

´Ë´ÎÊÔÑéÁ˽âÁ˸÷ÖÖÅÅÐòµÄ»ù±¾Ë¼Ï룬ÔÚ·ÖÎö¸÷ÖÖÅÅÐòµÄ³ÌÐò´úÂ룬¶Ô³ÌÐò½øÐе÷ÊÔÖ´Ðеȵȹý³ÌÖУ¬¶ÍÁ¶ÁË×Ô¼º·ÖÎöÊý¾Ý½á¹¹µÄÄÜÁ¦¡£´Ë´ÎÊÔÑéÈ»ÎÒÖªµÀÅÅÐòµÄ¶àÖÖ·½·¨£¬Ò²ÈÃÎÒÖªµÀÒª±àдºÃÒ»¸ö³ÌÐò£¬Ê×ÏÈÒªÕÆÎÕÆä»ù±¾µÄ˼Ïë¼°Ëã·¨¡£

ËÑË÷¸ü¶à¹ØÓÚ£º Êý¾Ý½á¹¹ÊµÑ鱨¸æ- ´ð°¸»ã×Ü µÄÎĵµ
  • ÊÕ²Ø
  • Î¥¹æ¾Ù±¨
  • °æÈ¨ÈÏÁì
ÏÂÔØÎĵµ10.00 Ôª ¼ÓÈëVIPÃâ·ÑÏÂÔØ
ÍÆ¼öÏÂÔØ
±¾ÎÄ×÷Õߣº...

¹²·ÖÏí92ƪÏà¹ØÎĵµ

Îĵµ¼ò½é£º

QuickSort(R,pivotpos+1,high); //¶ÔÓÒÇø¼äµÝ¹éÅÅÐò } } //======Ö±½ÓÑ¡ÔñÅÅÐò======== void SelectSort(SeqList R) { int i,j,k; for(i=1;i

¡Á ÓοͿì½ÝÏÂÔØÍ¨µÀ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩
µ¥Æª¸¶·ÑÏÂÔØ
ÏÞÊ±ÌØ¼Û£º10 Ôª/·Ý Ô­¼Û:20Ôª
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
VIP°üÔÂÏÂÔØ
ÌØ¼Û£º29 Ôª/Ô ԭ¼Û:99Ôª
µÍÖÁ 0.3 Ôª/·Ý ÿÔÂÏÂÔØ150·Ý
ȫվÄÚÈÝÃâ·Ñ×ÔÓɸ´ÖÆ
×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£ºfanwen365 QQ£º370150219
Copyright © ÔÆÌ⺣ All Rights Reserved. ËÕICP±¸16052595ºÅ-3 ÍøÕ¾µØÍ¼ ¿Í·þQQ£º370150219 ÓÊÏ䣺370150219@qq.com