1樓:匿名使用者
滿意答案是錯誤的,時間和空間複雜度過高,正確答案如下:
對n個數兩兩比較,看成是比賽,最後得出冠軍和亞軍即可,即a[0] vs a[1], a[2] vs a[3],... 最後還有多的就輪空,每次比較的較小值「獲勝」進入下一輪;
對「獲勝」者繼續上述兩兩比較,知道最後決出「冠軍」,這就是n個數的最小值。
我想很容易得知,這樣得到最小值共進行了 n-1 次比較操作。
關鍵是:第二小的數一定是所有與最小值進行過比較的那些數中間的最小值(第二小的一定是曾經被冠軍打敗過的)。由於最小值一共進行了 log n次比較,因此我們有 log n個candidates.
從這麼多數裡找最小值需要的比較次數當然是 log n-1。
總共需要的比較次數因此是 n + log n - 2上面的光排序就需要n*logn了
2樓:匿名使用者
#include
#define n 5
int main()
if(min==0) //排除特殊情況,smin賦初值的時候不能與min相同
smin=1;
else
smin=0;
for(i=1;i printf("%lf",num[smin]); return 0;} 3樓:匿名使用者 這個您試一下: #include main() i++; }if(i==8) printf("所有數相同"); else else if(a[i]< 兩種方法都可以,希望能夠幫到您。 4樓: 你可以這樣做,首先,你定義兩個陣列,一個陣列用來儲存原資料(我們將它標記為陣列a),另一個陣列用來儲存排序(從小到大)後的資料(我們將它標記為陣列b),我們把陣列a排序後的結果放到陣列b中,然後取出陣列b中的第二個元素(即b[1]),去與陣列a中的資料做比較,就可以找出第二小的資料在原陣列中的位置了~~~~ 我個人認為,給你個解題的思路,讓你自己去寫**,勝過於直接給你**…… 如果你想要**的話,可以跟我講下,我幫你寫~~~但是,我認為這對你沒有任何幫助~~ 5樓:匿名使用者 #include void main() for(i=0;i<10;i++) if(m>a[i]&&a[i]>n) printf("%d",k);} c語言 找出陣列10個數裡第二大的數和原始下標 不知道**錯了 求大神幫忙 6樓:匿名使用者 看不懂你寫的**邏輯,但是一個明顯的問題就是不能做值的交換,否則原始回 下標的位置就對不 答上了。給你段驗證過的**: #include int main() if(a[0] > a[1]) else for(i = 2; i < 10; i++)else if(a[i] > a[max2])max2 = i; }printf("第二大的數下標是:%d 值是:%d\n", max2, a[max2]); return(0);} c語言程式設計:陣列a中放n個整數,試求陣列中最大元素和第二大元素的下標,並輸出相應元素的值 7樓:匿名使用者 是一維陣列還是多維陣列?#includevoid main() max=a(0); for (i=0;i<5;i++) }printf("最大數為%d,下標為:%d\n",max,foot); cmax=a(0); for (i=0;icmax) } for(j=foot+1;j<5;j++) }printf("第二大數是%d,下標為: %d\n",cmax,cfoot);} 8樓:匿名使用者 #include int main() else if(a[i]>m2) } printf("最大的數是%d,下標是%d\n第二大的數是%d,下標是%d\n",m1,i1,m2,i2); return 0;} 函式形參中int sorce其實相當於int sorce,所以是指標而不是陣列,不信你可以在函式內改變形參sorce的值,而陣列是不可以重新賦值的。c 是不接受陣列作形參的。 可以在定義陣列的時候直接賦值,那樣就可以省略了列如 int a 陣列定義時必須確定長度,系統才知道給它分配多少記憶體。陣列作... 有一個已排好序 從大到小 的陣列有5個元素,從鍵盤輸入一個數,要求按原排序的規律將它插入到陣列中 5 i if x2.j i 當這個數比當前數小時,用j記住當前位置,即j i,中斷迴圈。比當前數大時繼續下一個 小應當在左側,大則在右側 3.break for i 5 i j i a i 1 a i ... 果果和糰子 n的階乘就是從1到的累積,所以可以通過一個for迴圈,從1到n依次求積即可。include stdio.h int main int n,i,s 1 scanf d n for i 1 i n i for迴圈求累積s s i printf d n s return 0 執行結果 例如求5...c語言陣列中括號的問題,C語言陣列中括號的問題
在c語言中,將數插入陣列中的程式怎麼寫
c語言如何求數的階乘,c語言如何求一個數的階乘