Được đưa ra với một mảng các phần tử số nguyên, nhiệm vụ là xóa các giá trị trùng lặp và in các phần tử riêng biệt theo cách được sắp xếp.
Dưới đây là một mảng lưu trữ các giá trị kiểu số nguyên theo kiểu 4, 6, 5, 3, 4, 5, 2, 8, 7 và 0 ngay bây giờ, kết quả sẽ in ra các phần tử được sắp xếp là 0, 2, 3, 4, 4, 5, 5, 6, 7 và 8 nhưng kết quả này vẫn chứa các giá trị trùng lặp 4 và 5 cần được loại bỏ và kết quả cuối cùng sẽ là 0, 2, 3, 4, 5, 6, 7 và 8
Ví dụ
Input: array[] = {4, 6, 5, 3, 4, 5, 2, 8, 7, 0} Output: 0 2 3 4 5 6 7 8
Giải thích
Vì vậy, để đạt được kết quả, chúng tôi sẽ
- Lấy các phần tử riêng biệt và lưu trữ nó trong một mảng khác, array1.
- Sắp xếp mảng 1.
- In các giá trị của mảng 1.
Thuật toán
START STEP 1: DECLARE VARIABLES i, j, array1[size], temp, count = 0 STEP 2: LOOP FOR i = 0 AND i < size AND i++ LOOP FOR j = i+1 AND j < size AND j++ IF array[i] == array[j]) then, break END IF END FOR IF j == size then, ASSIGN array1[count++] WITH array[i] END IF END FOR STEP 3: LOOP FOR i = 0 AND i < count-1 AND i++ LOOP FOR j = i+1 AND j < count AND j++ IF array1[i]>array1[j] then, SWAP array1[i] AND array[j] END IF END FOR END FOR STEP 4: PRINT array1 STOP
Ví dụ
#include <stdio.h> /* Prints distinct elements of an array */ void printDistinctElements(int array[], int size) { int i, j, array1[size], temp, count = 0; for(i = 0; i < size; i++) { for(j = i+1; j < size; j++) { if(array[i] == array[j]) { /* Duplicate element found */ break; } } /* If j is equal to size, it means we traversed whole array and didn't found a duplicate of array[i] */ if(j == size) { array1[count++] = array[i]; } } //sorting the array1 where only the distinct values are stored for ( i = 0; i < count-1; i++) { for ( j = i+1; j < count; j++) { if(array1[i]>array1[j]) { temp = array1[i]; array1[i] = array1[j]; array1[j] = temp; } } } for ( i = 0; i < count; ++i) { printf("%d ", array1[i]); } } int main() { int array[] = {4, 6, 5, 3, 4, 5, 2, 8, 7, 0}; int n = sizeof(array)/sizeof(array[0]); printDistinctElements(array, n); return 0; }
Đầu ra
Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra kết quả sau.
0 2 3 4 5 6 7 8