กำหนดให้กับอาร์เรย์ของอาร์เรย์ที่ไม่ได้เรียงลำดับ และภารกิจคือการคำนวณค่าเฉลี่ยและค่ามัธยฐานของอาร์เรย์ที่ไม่ได้จัดเรียง
สำหรับคำนวณค่าเฉลี่ย
ค่าเฉลี่ยคำนวณเพื่อหาค่าเฉลี่ย เราสามารถใช้สูตรที่กำหนดเพื่อหาค่าเฉลี่ย
ค่าเฉลี่ย =(ผลรวมขององค์ประกอบทั้งหมดของอาร์เรย์) / (จำนวนองค์ประกอบทั้งหมด
สำหรับคำนวณค่ามัธยฐาน
หากจัดเรียงอาร์เรย์ ค่ามัธยฐานคือองค์ประกอบตรงกลางของอาร์เรย์ ในกรณีที่องค์ประกอบมีจำนวนคี่ในอาร์เรย์ และเมื่อจำนวนองค์ประกอบในอาร์เรย์มีค่าเท่ากัน จะเป็นค่าเฉลี่ยขององค์ประกอบกลางสองรายการ
ถ้าอาร์เรย์ไม่ถูกจัดเรียง ภารกิจแรกคือการเรียงลำดับอาร์เรย์ จากนั้นจึงใช้ตรรกะที่กำหนดเท่านั้น
ถ้า n เป็นเลขคี่
1, 2, 3, 4, 5 Median = 3
ถ้า n เป็นคู่
1, 2, 4, 5 Median = (2 + 4) / 2 = 3
ป้อนข้อมูล
arr[] = {3,5,2,1,7,8}
ผลผลิต
Mean is : 4.33333 Median is : 4
ป้อนข้อมูล
arr[] = {1, 3, 4, 2, 6, 5, 8, 7}
ผลผลิต
Mean is: 4.5 Median is: 4.5
อัลกอริทึม
Start Step 1→ declare function to calculate mean double mean(int arr[], int size) declare int sum = 0 Loop For int i = 0 and i < size and i++ Set sum += arr[i] End return (double)sum/(double)size Step 2→ declare function to calculate median double median(int arr[], int size) call sort(arr, arr+size) IF (size % 2 != 0) return (double)arr[size/2] End return (double)(arr[(size-1)/2] + arr[size/2])/2.0 Step 3→ In main() Declare int arr[] = {3,5,2,1,7,8} Declare int size = sizeof(arr)/sizeof(arr[0]) Call mean(arr, size) Call median(arr, size) Stop
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; //calculate mean double mean(int arr[], int size){ int sum = 0; for (int i = 0; i < size; i++) sum += arr[i]; return (double)sum/(double)size; } //calculate median double median(int arr[], int size){ sort(arr, arr+size); if (size % 2 != 0) return (double)arr[size/2]; return (double)(arr[(size-1)/2] + arr[size/2])/2.0; } int main(){ int arr[] = {3,5,2,1,7,8}; int size = sizeof(arr)/sizeof(arr[0]); cout << "Mean is : " << mean(arr, size)<<endl; cout << "Median is : " << median(arr, size) << endl; return 0; }
ผลลัพธ์
หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Mean is : 4.33333 Median is : 4