本文中所有演算法均蒐集於網路,在此感謝各位大師的無私奉獻。
主函式:
1演算法一:const
intmax
=1000
; //
最大取值範圍2//
const int count = 5000;
//小資料量
3const
intcount
=100000000
; //
資料量4
const
intresultlen =4
; //
返回長度56
static
void
main(
string
args)721
console.writeline(
"共耗時毫秒
", environment.tickcount
-tick);
22#endregion
2324
console.readkey();25}
26
1執行結果如下:static
int zswang_0(
int data,
intlen)2);
14/*
15for (var i = 0; i < 100; i++)
16=", indexs[i], dict[indexs[i]]);18}
19//
*/20
var result
=new
int[len];
21for
(var i =0
; i
<
len; i
++) result[i]
=indexs[i];
//輸出
22return
result;23}
24
演算法二:
1執行結果如下:static
int chrisak_0(
int data,
intlen)222
});23
th.start(i);
24threads[i -1
] =th;25}26
dict[0]
=new
int[max];
//主線程開始計算自己的部分
27for
(var i =0
; i
<
part; i++)
2831
for(var i =1
; i
<
ncpu;
++i)
//等待其它執行緒結束
32threads[i -1
].join();
33for
(var i =0
; i
<
max;
++i)
//合併結果
3440
for(
inti
=ncpu
*part; i
<
count;
++i)
//處理某些cpu核心個數無法整除的情況
41dict[0][
1]++;
42}43else
4449}50
//按出現的次數排序
51var indexs
=new
int[max];
52for
(var i =0
; i
<
max; i
++) indexs[i]
=i;
//獲得完整的序號
53array.sort(indexs,
delegate
(int
a, int
b)54
);57
for(var i =0
; i
<
50; i++)
58=", indexs[i], dict[
0][indexs[i]]);60}
61var result
=new
int[len];
62for
(var i =0
; i
<
len; i
++) result[i]
=indexs[i];
//輸出
63return
result;64}
65
演算法三:
1執行結果如下:static
int wuyi8808_0(
int data,
intlen)2=
", indexs[i], dict[i]);17}
18//
*/19
var result
=new
int[len];
20for
(var i =0
; i
<
len; i
++) result[i]
=indexs[max -i
-1]; //
輸出21
return
result;22}
23
演算法四:
1執行結果如下:static
int sp1234_0(
int data,
intlen)218
else
if(m
>
len)
19t =m
-1;20
else
21f =m
+1;22
goto
loop;23}
2425
static
intpartition(
int value,
int data,
inti,
intj)
2642
43m
=data[i];
44data[i]
=data[j];
45data[j] =m;
46i++;
47j--;
48goto
begin;49}
50
演算法五:
1執行結果如下:static
int wuyi8808_1(
int data,
intlen)215
}16return
result;17}
18
演算法六:
1執行結果如下:struct
set2
6static
int lcl_0(
int data,
intlen)716
17//
按出現的次數排序
18array.sort(dict,
delegate
(set
a, set
b)19
);22
23int
result
=new
int[len];
24for
(inti =
0; i
<
len; i
++) result[i]
=dict[i].key;
//輸出
25return
result;26}
27
演算法七:
1運結結果如下:static
int lihanbing_0(
int data,
intlen)227
}28return
result;29}
30
在1000個數中找出出現次數最多的數
package com.fonxian.findmax 問題 在乙個由自然數1 1000中某些數字所組成的陣列中,每個數字可能出現零次或者多次。設計乙個演算法,找出出現次數最多的數字。public class findmax 找到出現次數最多的數 for int t 0 t 1000 t retur...
從一億個ip找出出現次數最多的IP 分治法
1,hash雜湊 2,找到每個塊出現次數最多的 預設出現均勻 可以用字典樹 3,在每個塊出現最多的資料中挑選出最大的為結果 問題一 怎麼在海量資料中找出重複次數最多的乙個 演算法思想 方案1 先做hash,然後求模對映為小檔案,求出每個小檔案中重複次數最多的乙個,並記錄重複次數。然後找出上一步求出的...
從乙個陣列中尋找出現奇數次的數字
假設給定了陣列nums為 0,1,2,3,4,5,6,7,8,9,10,10,9,8,7,6,5,4,1,2,3,3,0 其中3出現了3次 而其他數字都出現了兩次 則我們應該得到結果為3 第一種方式 使用hash 1 2 使用hash3 4public static int singlenumber...