ปัญหา
ค้นหาองค์ประกอบที่ไม่ซ้ำในอาร์เรย์โดยใช้สองลูป หนึ่งสำหรับองค์ประกอบปัจจุบันและอีกส่วนหนึ่งคือการตรวจสอบว่าองค์ประกอบนั้นมีอยู่แล้วในอาร์เรย์หรือไม่
วิธีแก้ปัญหา
ลองพิจารณาตัวอย่างด้านล่าง −
15, 15, 16, 15, 13, 15
ในที่นี้ อิลิเมนต์ที่ไม่ซ้ำในอาร์เรย์คือ 16 และ 13
อัลกอริทึม
อ้างถึงอัลกอริทึมที่ระบุด้านล่างเพื่อค้นหาองค์ประกอบที่ไม่ซ้ำหรือที่ไม่ซ้ำในอาร์เรย์
ขั้นตอนที่ 1 - ประกาศอาร์เรย์และป้อนองค์ประกอบอาร์เรย์ในเวลาทำงาน
ขั้นตอนที่ 2 - เริ่มสำรวจอาร์เรย์และตรวจสอบว่าองค์ประกอบปัจจุบันมีอยู่แล้วในอาร์เรย์หรือไม่
ขั้นตอนที่ 3 - หากมีอยู่แล้วในอาร์เรย์ ให้ย้ายไปยังองค์ประกอบถัดไปในอาร์เรย์และดำเนินการต่อ
ขั้นตอนที่ 4 - หากไม่เป็นเช่นนั้น ให้ส่งออกองค์ประกอบเป็นองค์ประกอบที่ไม่ซ้ำ
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับค้นหาองค์ประกอบที่ไม่ซ้ำหรือองค์ประกอบที่ไม่ซ้ำในอาร์เรย์ -
#include <stdio.h> #include <stdlib.h> int uniqueEle(int array[], int n){ int i,j; int count = 1; for(i = 0; i < n; i++){ for(j = 0; j < n; j++){ if(array[i] == array[j] && i != j) break; } if(j == n ){ printf("\nunique elements in an array is [%d] : %d \n",count,array[i]); ++count; } } return -1; } int main(){ int n,i; printf("\nEnter no: of elements : "); scanf("%d",&n); int array[n]; printf("\nenter the array elements : "); for(i = 0; i < n; i++){ scanf("%d",&array[i]); } uniqueEle(array, n); return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Run 1: Enter no: of elements: 5 enter the array elements : 11 11 15 16 13 unique elements in an array is [1] : 15 unique elements in an array is [2] : 16 unique elements in an array is [3] : 13 Run 2: Enter no: of elements: 4 enter the array elements : 11 12 11 11 unique elements in an array is [1] : 12