C Code I need to edit the code in the function deleteDuplica
C++ Code
I need to edit the code in the function deleteDuplicates() to reduce the Big O to O(N), meaning, to get to use only one loop instead of two.
The output after the sorting is 1 1 1 2 2 4 6 7 9 9. The output should be 1 0 0 2 0 4 6 7 9 0 after the deleteDuplicates() funtion.
C++ Code
**************************************************************************************
#include<iostream>
 #include<string>
 #include<stdio.h>
//using namespace std;
 int a[] = { 1, 7, 1, 2, 4, 6, 1, 9, 9, 2 };
 int size = sizeof(a)/sizeof(a[0]);
 void display()
 {
    for (int i = 0; i < size; i++)
    {
        printf(\"%d \", a[i]);
    }
    printf(\"\ \");
 }
   void insertionSort() {
 for(int i = 1; i < size; i++) {
 for(int j = i-1; j >= 0; j--){
 int temp = a[j];
 printf(\"%d > %d ?\ \", a[j], a[j+1]);
 if(a[j] > a[j+1]){
 a[j] = a[j+1];
 a[j+1] = temp;
 }
 else
 break;
 }
 display();
 }
    }
   void deleteDuplicates() {
    for(int i = 0; i < size; i++) {
 for(int j = i+1; j >= 0; j--){
 if(a[j] == a[j+1]){
 a[j+1] = 0;
 }
 else
 break;
 }
 display();
 }
}
int main()
 {
   display();
    insertionSort();
 display();
 deleteDuplicates();
 display();
    return 0;
}
**************************************************************************************
C++ Code
Solution
#include<iostream>
 #include<string>
 #include<stdio.h>
 //using namespace std;
 int a[] = { 1, 7, 1, 2, 4, 6, 1, 9, 9, 2 };
 int size = sizeof(a)/sizeof(a[0]);
 void display()
 {
 for (int i = 0; i < size; i++)
 {
 printf(\"%d \", a[i]);
 }
 printf(\"\ \");
 }
 void insertionSort() {
 for(int i = 1; i < size; i++) {
 for(int j = i-1; j >= 0; j--){
 int temp = a[j];
 printf(\"%d > %d ?\ \", a[j], a[j+1]);
 if(a[j] > a[j+1]){
 a[j] = a[j+1];
 a[j+1] = temp;
 }
 else
 break;
 }
 display();
 }
 }
 void deleteDuplicates() {
 for(int i = size-1; i >= 0; i--) {
 
 if(a[i] == a[i-1])
 a[i] = 0;
 
 
 
 display();
 }
 }
 int main()
 {
 display();
 insertionSort();
 display();
 deleteDuplicates();
 display();
 return 0;
 }



