亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

能不能完整的解釋一下程序呀,看不懂。特別是明明是一維數組,為什么用i,j兩個變量來循環?

能不能完整的解釋一下程序呀,看不懂。特別是明明是一維數組,為什么用i,j兩個變量來循環?

csh_001 2016-03-31 15:57:55
#include<stdio.h> #include<stdlib.h> #include<time.h> typedef?int?KeyType; typedef?struct { KeyType?key; }DataType; void?BubbleSort(DataType?a[],int?n) { int?i,j,flag=1; DataType?temp; for(i=1;i<n&&flag==1;i++) { flag=0; for(j=0;j<n-i;j++) { if(a[j].key>a[j+1].key) { flag=1; temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } void?QuickSort(DataType?a[],int?low,int?high) { int?i=low,j=high; DataType?temp=a[low]; while(i<j) { while(i<j&&temp.key<=a[j].key)j--; if(i<j) { a[i]=a[j]; i++; } while(i<j&&a[i].key<temp.key)i++; if(i<j) { a[j]=a[i]; j--; } } a[i]=temp; if(low<i)QuickSort(a,low,i-1); if(i<high)QuickSort(a,j+1,high); } void?main(void) { int?i,n=30000; double?dif; time_t?start,end; DataType?test1[30000],test2[30000]; for(i=0;i<n;i++) { test1[i].key=rand(); test2[i].key=test1[i].key; } time(&start); BubbleSort(test1,n); time(&end); dif=difftime(end,start); printf("冒泡排序:%.2f秒\n",dif); time(&start); QuickSort(test2,0,n-1); time(&end); dif=difftime(end,start); printf("快速排序:%.2f秒\n",dif); }
查看完整描述

1 回答

?
是王小二呀

TA貢獻88條經驗 獲得超19個贊

你先想想,如果你不給程序一個看的見得控制數字,,它怎么知道要跑幾次?,,第一次給個i,知道跑i次,你不再給個j,程序怎么知道每一個i里面跑幾次?再給個j,每一個i里面程序才知道跑幾次,,以此類推,,至于每一個i里面的每一個j里面要讓計算機怎么跑,那就是你該做的了,,

查看完整回答
反對 回復 2016-04-09
  • 1 回答
  • 0 關注
  • 1328 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號