Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Dude your code has serious problems, your quicksort seems OK but your program is not.</p> <ol> <li>if you want to do binary search it is better to insert wisely to keep the list sorted.</li> <li>you do not need a loop for calling quicksort function</li> <li>after once you have called quicksort, you have a partially sorted list where quicksort is not actually so good, so it is better to use insertion sort</li> <li>...</li> </ol> <p>I modified your code a little, still you can do more.</p> <pre><code> #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class Student { public: string getName(); string getSurname(); string getID(); void setName(string stdName); void setSurname(string stdSurname); void setID(string stdIDs); private: string name; string surname; string ID; }; int quick_sort_help(Student students[],int left, int right) { Student val = students[right]; Student temp; int j = right; int i = left - 1; while (true) { while (students[++i].getID() &lt; val.getID()); while (students[--j].getID() &gt; val.getID()) { if(j == left) break; } if(i &gt;= j) break; temp=students[i]; students[i]=students[j]; students[j]=temp; } temp=students[i]; students[i]=students[right]; students[right]=temp; return i; } void quicksort(Student students[],int left, int right) { if (left &lt; right) { int pivot = quick_sort_help(students, left, right); quicksort(students, left, pivot - 1); quicksort(students, pivot + 1, right); } } void quick_sort(Student students[],int size){ quicksort(students,0,size-1); } int main() { Student myStudent[100]; string name; string surname; string id; int choice; int temp=0; char ans1; do { cout&lt;&lt;"Please enter Student's name: "; cin&gt;&gt;name; cout&lt;&lt;"Please enter Student's surname: "; cin&gt;&gt;surname; cout&lt;&lt;"Please enter Student's ID: "; cin&gt;&gt;id; myStudent[temp].setName(name); myStudent[temp].setSurname(surname); myStudent[temp].setID(id); cout&lt;&lt;"Want to add new Student? (y/n)"; cin&gt;&gt;ans1; temp++; }while(ans1=='y'||ans1=='Y'); quick_sort(myStudent, temp); do{ cout&lt;&lt;"What do you want to search with?"&lt;&lt;endl; cout&lt;&lt;"1-)Search with name:"&lt;&lt;endl; cout&lt;&lt;"2-)Search with surname:"&lt;&lt;endl; cout&lt;&lt;"3-)Search with ID (binary!):"&lt;&lt;endl; cout&lt;&lt;"4-)Show List!"&lt;&lt;endl; cin&gt;&gt;choice; switch (choice) { case 1: { cout&lt;&lt;"Enter the student name:"; cin&gt;&gt;name; for(int i=0;i&lt;temp;i++) { if(myStudent[i].getName()==name) { cout&lt;&lt;myStudent[i].getID() + " " + myStudent[i].getName() + " " + myStudent[i].getSurname()&lt;&lt;endl; } } break; } case 2: { cout&lt;&lt;"Enter the student surname:"; cin&gt;&gt;surname; for(int i=0;i&lt;temp;i++) { if(myStudent[i].getSurname()==surname) { cout&lt;&lt;myStudent[i].getID() + " " + myStudent[i].getName() + " " + myStudent[i].getSurname()&lt;&lt;endl; } } break; } case 3: { cout&lt;&lt;"Enter the student ID:"; cin&gt;&gt;id; int left=0; int right = temp; int mid = (right + left)/2; while(left &lt;= right){ if(myStudent[mid].getID()&gt;id) { right = mid - 1; mid = (right+left)/2; } if(myStudent[mid].getID()&lt;id) { left = mid + 1; mid = (right+left)/2; } if(myStudent[mid].getID()==id) { cout&lt;&lt;myStudent[mid].getID()+ " " + myStudent[mid].getName()+ " " + myStudent[mid].getSurname()&lt;&lt;endl; break; } } break; } case 4: { cout&lt;&lt;"id/name/surname"&lt;&lt;endl; for(int i=0;i&lt;temp;i++) { cout&lt;&lt;myStudent[i].getID()+ " " + myStudent[i].getName() + " " + myStudent[i].getSurname()&lt;&lt;endl; } break; } } cout&lt;&lt;"Do you want to continue?(y/n)"&lt;&lt;endl; cin&gt;&gt;ans1; }while(ans1=='y' || ans1=='Y'); return 0; } string Student::getName() { return name; } string Student::getSurname() { return surname; } string Student::getID() { return ID; } void Student::setName(string stdName) { name=stdName; } void Student::setSurname(string stdSurname) { surname=stdSurname; } void Student::setID(string stdID) { ID=stdID; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload