Re: [問題] 關於眾數問題
※ 引述《yauhh (喲)》之銘言:
: ※ 引述《applea123 (小刀)》之銘言:
: : 最近在寫眾數問題
: : 主要是考慮到眾數>2時
: : ex:1 1 1 1 1 2 2 2 2 3 3 3 4 4
: : 眾數有1 2
: : 次數4
: : 我自己是有寫出來 但是想問問大家有沒更快的"想法"
: : 我的步驟:
: : 1.排序 並丟入a[]
: : 2.用一個陣列b[]紀錄各數出現次數並使用另一個對應陣列c[]來記錄此數字
: : 3.陣列b排列並且c一起做交換
: : 4.判斷b[] if(b[i]=b[i+1])
: : 5.印出b[] 與c[]
: 我的作法沒很快,很基本:
: 一直線掃描,看過的數字把頻次加一,沒看過的數字填入表中.
啊哈, 如果考慮的有界整數, 考慮 bucket sort 的變形就好
想法跟你一樣, 但如果知道上下界的話, 直接開一個固定大小的 array X,
假設是 0 - 99, 看到 0 就在 X[0] 加一, 線性時間內就解決了。
要找眾數就等同於找這個 array 上的最大值們。排序也可以順便完成,
照頻率表上的數字填回去就好。
--
XOO's http://xcycl.wordpress.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 147.188.193.87
→
10/22 09:07, , 1F
10/22 09:07, 1F
推
10/22 12:11, , 2F
10/22 12:11, 2F
→
10/22 12:11, , 3F
10/22 12:11, 3F
推
10/23 00:23, , 4F
10/23 00:23, 4F
推
10/23 00:46, , 5F
10/23 00:46, 5F
推
10/23 00:49, , 6F
10/23 00:49, 6F
→
10/23 00:50, , 7F
10/23 00:50, 7F
推
10/23 01:15, , 8F
10/23 01:15, 8F
→
10/23 01:16, , 9F
10/23 01:16, 9F
→
10/23 01:17, , 10F
10/23 01:17, 10F
→
10/23 01:18, , 11F
10/23 01:18, 11F
→
10/23 01:18, , 12F
10/23 01:18, 12F
→
10/23 01:19, , 13F
10/23 01:19, 13F
推
10/23 01:34, , 14F
10/23 01:34, 14F
→
10/23 01:35, , 15F
10/23 01:35, 15F
推
10/23 01:36, , 16F
10/23 01:36, 16F
→
10/23 01:36, , 17F
10/23 01:36, 17F
→
10/23 01:36, , 18F
10/23 01:36, 18F
→
10/23 01:37, , 19F
10/23 01:37, 19F
→
10/23 01:38, , 20F
10/23 01:38, 20F
→
10/23 01:38, , 21F
10/23 01:38, 21F
→
10/23 01:39, , 22F
10/23 01:39, 22F
→
10/23 01:39, , 23F
10/23 01:39, 23F
推
10/23 01:41, , 24F
10/23 01:41, 24F
推
10/23 01:44, , 25F
10/23 01:44, 25F
→
10/23 01:45, , 26F
10/23 01:45, 26F
→
10/23 01:45, , 27F
10/23 01:45, 27F
→
10/23 01:45, , 28F
10/23 01:45, 28F
→
10/23 01:46, , 29F
10/23 01:46, 29F
推
10/23 01:48, , 30F
10/23 01:48, 30F
→
10/23 01:49, , 31F
10/23 01:49, 31F
→
10/23 01:50, , 32F
10/23 01:50, 32F
→
10/23 01:50, , 33F
10/23 01:50, 33F
→
10/23 02:10, , 34F
10/23 02:10, 34F
→
10/23 02:12, , 35F
10/23 02:12, 35F
→
10/23 02:13, , 36F
10/23 02:13, 36F
推
10/23 12:20, , 37F
10/23 12:20, 37F
討論串 (同標題文章)