Doubt about comparison function in sorting array of structures.

Revision en2, by rtanmay, 2018-08-01 22:33:24

Hello,

I was solving this problem. In this I have sorted the array of structures.

//This is my structure:

typedef struct node { int a,b,c; } node;

//This gets runtime error on test-32.

//Error: comparison doesn't meet irreflexive requirements, assert(!(a < a)).

bool compare(node n1, node n2) { if(n1.c > n2.c) return false; else return true; }

//However this gets accepted, only change is in >**=**

bool compare(node n1, node n2) { if(n1.c >= n2.c) return false; else return true; }

Why is this error coming? I thought even if we give only > then for equal value it will return true, so there should not be any problem between comparison of equal elements.

Thank you

Tags #sorting, comparison function

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en6 English rtanmay 2018-08-01 22:41:04 4
en5 English rtanmay 2018-08-01 22:40:19 138
en4 English rtanmay 2018-08-01 22:37:26 4 Tiny change: 'ge is in >**=**\nbool com' -> 'ge is in >=\nbool com'
en3 English rtanmay 2018-08-01 22:36:34 50
en2 English rtanmay 2018-08-01 22:33:24 8
en1 English rtanmay 2018-08-01 22:32:50 817 Initial revision (published)