Ich habe diese Implementierung von mycodesschool gelernt, die Methode scheint mir in Ordnung zu sein, denn so unterrichtet der Lehrer dort und ich habe die gleiche Implementierung gemacht, aber irgendwie gibt mein Code auch ein Problem ignoriere einfach die Zeitfunktion, weil der Fehler irgendwo anders ist. Ich habe es entfernt und der Fehler ist immer noch derselbe.Da stimmt etwas nicht mit meiner Einfüge-Nummer
//insertion sort
#include<iostream>
#include <ctime>
using namespace std;
class insertion{
public:
insertion(){} //constructor
void sort(int a[], int n) { //insertion sort function
for (int i = 1; i < n; i++) {
int value = a[i];
int index = i;
while (i > 0 && a[i - 1] > value) {
a[index] = a[index - 1];
index=index-1;
}
a[index] = value;
}
}
//display function
void display(int a[], int n) {
for (int i = 0; i < n; i++) {
cout << a[i] << endl;
}
}
};
void main(){
insertion ins;
int a[10];
int n = 10;
cout << "Enter the elements:" << endl;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
unsigned int start = clock(); //measuring time of sort from here
cout << "waiting for keyhit";
cin.ignore();
ins.sort(a, n);
ins.display(a, n);
cout << "Time taken in millisecs: " << clock() - start; //to here
cin.ignore();
}
Es klingt wie Sie müssen lernen, wie Sie einen Debugger verwenden, um durch Ihren Code zu gehen. Mit einem guten Debugger können Sie Ihr Programm Zeile für Zeile ausführen und sehen, wo es von dem, was Sie erwarten, abweicht. Dies ist ein essentielles Werkzeug, wenn Sie programmieren wollen. Weiterführende Literatur: ** [Wie kleine Programme zu debuggen] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) ** – NathanOliver
Ich sehe das Austauschen ist nicht ordnungsgemäß in dein Fall. –
"Geben Sie ein Problem" ... Sie könnten zumindest genau angeben, was das Problem ist. – crashmstr