1樓:投機士
方法一:查詢一個陣列裡面最小和次小的兩個元素,可採用先按從小到大排序,然後,取出前兩位數,得到最小和次小。但這種方法時間複雜度較高。
方法二:
先假定陣列的前兩位中的較小的是最小,較大的是次小迴圈檢查其餘的元素,
若新元素小於最小,則,最小變為次小,新元素成為最小否則,再判斷新元素是否小於次小,是,則新元素變為次小迴圈結束,輸出兩個數。
這種方法,一次遍歷陣列,就可以得到結果,效率比排序高出很多。
2樓:
我也不會做,我覺得用兩個for迴圈,
for(i=0;f[i]!='\0';i++)for(j=0;f[j]!='\0';j++)思路就這樣,自己寫吧
3樓:
用2分查詢
nlgn
#include
int bsearch(int a, int l, int r, int v)
else if (a[m] < v)
else
}else
return -1;
}int main()
, g[5]=, int n = 0;
for (int i = 0; i < 5; i++)}return 0;}
同c語言合併兩個陣列,同C語言合併兩個陣列
合併陣列的操作,具體演算法依賴於合併的規則。其通用流程如下 1 建立一個足夠容納兩個陣列所有元素的目標陣列。如果規則規定將一個陣列合併到另一個之中,那麼需要保證目標陣列有可以容納兩個陣列的空間,否則會出現越界。2 遍歷其中一個陣列,並賦值到目標陣列中。如果是一個陣列合併到另一個,那麼此步可以省略 3...
c陣列問題。這個陣列裡面都是兩兩相同的,只有不是,輸出這個不一樣的
public static void getsinglenumber int numbers for int i 0 i array.length i 方法二 使用linq api public static void getsinglenumberwithlinq int numbers 試著用巢...
c求素數個數,C 求素數個數
篩選法求n以內的素數個數 include include using namespace std int filter int n int main int filter int n int i,j int count 0 素數統計bool flag new bool n 1 素數標記,素數為1,非...