Ich bin ziemlich neu im Codieren und ich habe mit diesem Code gekämpft, der es mir erlaubt, zufällig ein riesiges Array von Ganzzahlen zu erzeugen, eine bestimmte Shell-Sortierung auszuwählen und dann zu testen, ob das Array war richtig sortiert.Shell Sortierung und Sortierung Verifikation
#include <iostream>
#include <stdlib.h>
#include <time.h>
#define LISTLEN 100000
using namespace std;
void shellSort(int[], int, int[], int);
void testIfSorted(int[], int);
void main()
{
{
int list[LISTLEN];
int seq1[] = {LISTLEN/2};
int seq2[] = {2-1};
int seq3[] = { 4 + 3 * (2^0) + 1 };
int choice;
for (int i = 1; i < LISTLEN; i++)
{
list[i] = rand() % LISTLEN + 1;
cout << list[i] << endl;
}
cout << "\nEnter the Number for Which Sequence-Type You Wish to Use: \n"
"1) Shell Sequence\n"
"2) Hibbard Sequence\n"
"3) Sedgewick Sequence\n";
cin >> choice;
if (choice == 1)
{
shellSort(list, LISTLEN, seq1, LISTLEN/2);
}
else if (choice == 2)
{
shellSort(list, LISTLEN, seq2, (2 - 1));
}
else if (choice == 3)
{
shellSort(list, LISTLEN, seq3, (4 + 3 * (2^0) + 1));
}
cout << "\nVerifying List was Sorted\n";
testIfSorted;
}
}
void shellSort(int arr[], int arrsize, int seq[], int seqsize)
{
clock_t t;
t = clock();
{
int j, temp;
for (int i = seqsize; i < arrsize; i += 1)
{
temp = seq[i];
for (j = i; j >= seqsize && seq[j - seqsize] > temp; j -= seqsize)
{
seq[j] = seq[j - seqsize];
}
seq[j] = temp;
cout << temp << endl << endl;
}
t = clock() - t;
printf("It took me %d clicks (%f seconds).\n", t, ((float)t)/CLOCKS_PER_SEC);
}
}
void testIfSorted(int list[], int length)
{
for (int i = 0; i < length - 1; i++)
{
if (list[i] < list[i + 1])
{
cout << "List Isn't Sorted Correctly\n";
}
else (list[i] > list[i + 1]);
{
cout << "List Sorted Correctly\n";
}
}
}
Ich weiß nicht, was ich falsch mache, wird der Shellsort nicht tatsächlich das Array sortieren oder zumindest nicht eine absteigende Sortierung tun, und wenn das Programm nicht überprüft, um sicherzustellen, Das Array ist korrekt sortiert und zeigt nicht die Nachricht an, die angezeigt werden soll.
Das ist eine clevere Art, jemandem zu sagen, dass er ein 'if' Statement vergessen hat :) –