public class Utils {
//------------------------------------------------------------
// คืนจำนวนข้อมูลในอาเรย์ d ที่มีค่าเท่ากับ x เช่น
// ให้ d = [ 2, 3, 4, 4, 5, 5, 4 ], x = 4
// เมื่อเรียก count(d,x) จะได้ 3 เพราะมี 4 ปรากฏใน d อยู่ 3 ตัว
public static int count(int[] d, int x) {
int counter = 0;
for (int i = 0; i < d.length; i++) {
if (d[i] == x) counter++;
}
return counter;
}
//------------------------------------------------------------
// คืนข้อมูลในอาเรย์ d ที่ปรากฏเป็นจำนวนมากสุด เช่น
// ให้ d = [1, 3, 3, 1, 2, 3, 9, 3, 3]
// เมื่อเรียก mode(d) จะได้ 3 เพราะ 3 ปรากฏใน d เป็นจำนวน 5 ตัว ซึ่งเป็นจำนวนมากสุด
// หมายเหตุ : ถ้ามีข้อมูลใน d เกินหนึ่งตัวที่ปรากฏมากสุดเป็นจำนวนเท่ากัน จะคืนตัวใดก็ได้
// และให้ถือว่าอาเรย์ d ที่ได้รับมีขนาดอย่างน้อย 1 ช่อง
public static int mode(int[] d) {
int num[] = new int[d.length];
int fq[] = new int[d.length];
int u = 0;
for (int i = 0; i < d.length - 1; i++) {
boolean aL = false;
if (i == 0) num[i] = d[i];
else {
for (int h = i - 1; h >= 0; h--) {
if (d[h] == d[i]) { aL = true; break; }
if (h == 0) { u++; num[u] = d[i]; }
}
}
for (int j = i; j < d.length; j++) {
if (aL) break;
if (d[j] == d[i]) fq[u] = fq[u] + 1;
}
}
int maxI = 0;
int maxN = 0;
for (int i = 0; i < d.length; i++) {
if (fq[i] == 0) break;
if (fq[i] > maxI) {
maxI = fq[i];
maxN = num[i];
}
}
return maxN;
}
//------------------------------------------------------------
// ถามว่ามีข้อมูลใดในอาเรย์ d หรือไม่ ที่มีค่าซ้ำ ๆ กันเป็นจำนวนเกินครึ่งของขนาดอาเรย์ เช่น
// ให้ d = [1,0,1,2,1,1,1,1,1,2]
// เมื่อเรียก majority(d) จะคืนค่า true
// แต่ถ้า d = [1,1,1,2,2,3]
// เมื่อเรียก majority(d) จะคืนค่า false เพราะไม่มีข้อมูลใดใน d ที่มีค่าซ้ำกันเกิน 3 ตัว
public static boolean majority(int[] d) {
boolean maj = false;
int a[] = new int[d.length];
int b[] = new int[d.length];
int h = 0;
for (int i = 0; i < d.length; i++) {
boolean f = true;
for (int j = 0; j < d.length; j++) {
if(d[i] == a[j]) f=false;
}
if (f) a[h] = d[i];
for (int j = i + 1; j < d.length; j++) {
if (d[j] == d[i]) b[h]++;
}
h++;
}
for (int i = 0; i < b.length; i++) {
if (b[i] == d.length / 2) maj = true;
}
return maj;
}
//------------------------------------------------------------
// ถ้าต้องการเขียนเมท็อด main เพื่อทดสอบการทำงานของเมท็อดต่่าง ๆ ก็เขียนเพิ่มได้ที่บริเวณนี้
public static void main(String[] arg) {
}
//------------------------------------------------------------
}
|
SM=3, CM=86, ST=25, KY=3097, TR=60:00
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 6060:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
ERR = 60:00 ;
|