diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Bachelor/Prog1/Prakt4/prg1p4_2 | |
| download | Studium-master.tar.gz Studium-master.tar.bz2 | |
Diffstat (limited to 'Bachelor/Prog1/Prakt4/prg1p4_2')
| -rw-r--r-- | Bachelor/Prog1/Prakt4/prg1p4_2/main.cpp | 123 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt4/prg1p4_2/prg1p4_2.dsp | 100 | ||||
| -rw-r--r-- | Bachelor/Prog1/Prakt4/prg1p4_2/prg1p4_2.dsw | 29 |
3 files changed, 252 insertions, 0 deletions
diff --git a/Bachelor/Prog1/Prakt4/prg1p4_2/main.cpp b/Bachelor/Prog1/Prakt4/prg1p4_2/main.cpp new file mode 100644 index 0000000..6c30139 --- /dev/null +++ b/Bachelor/Prog1/Prakt4/prg1p4_2/main.cpp @@ -0,0 +1,123 @@ +// Programmieren 1, Praktikum 4, Aufgabe 2
+// Sven Eisenhauer
+// 08.12.2004
+//
+// file: main.cpp
+//
+// purpose: Implementation of Selection Sort and Insertion Sort algorithm
+//
+
+#include <iostream>
+
+using std::cout;
+using std::endl;
+
+#include <iomanip>
+
+using std::setprecision;
+using std::setw;
+
+// contains function prototypes for functions srand and rand
+#include <cstdlib>
+
+#include <ctime>
+
+void selectionSort(int[], int);
+void insertionSort(int[], int);
+
+int main ()
+{
+ const int arraySize=5;
+ int array1[arraySize],array2[arraySize];
+
+ srand(time(0));
+
+ // fill the arrays with some random stuff
+ for (int i=0;i<arraySize;i++)
+ {
+ array1[i]=rand()%1000;
+ array2[i]=array1[i];
+ }
+
+ // shown the unsorted random array
+ cout << "Unsorted Array:" << endl;
+ for (i=0;i<arraySize;i++)
+ {
+ cout << setw(5) << array1[i];
+ }
+ cout << endl;
+
+ // selectionSort
+ selectionSort(array1,arraySize);
+
+ cout << "Selection sorted Array:" << endl;
+ for (i=0;i<arraySize;i++)
+ {
+ cout << setw(5) << array1[i];
+ }
+ cout << endl;
+
+ // insertionSort
+ insertionSort(array2,arraySize);
+
+ cout << "Insertion sorted Array:" << endl;
+ for (i=0;i<arraySize;i++)
+ {
+ cout << setw(5) << array2[i];
+ }
+ cout << endl;
+
+ return 0;
+}
+
+void selectionSort(int a[],int aSize)
+{
+ int hold;
+
+ for (int i=0;i<aSize;i++)
+ {
+ // start from actual position...
+ for (int j=i;j<aSize;j++)
+ {
+ // ... search the minimum...
+ if(a[j]<a[i])
+ {
+ //... and insert it
+ hold=a[i];
+ a[i]=a[j];
+ a[j]=hold;
+ }
+ }
+ }
+} // end function selectionSort
+
+void insertionSort(int a[],int aSize)
+{
+ int temp,i;
+
+ for (int n=1;n<aSize;n++)
+ {
+ // only if we have a wrong order
+ if (a[n]<a[n-1])
+ {
+ // save the value, we want to insert
+ temp=a[n];
+ // we need a second variable
+ i=n-1;
+ // shift all values up till we are at the right place
+ // while the value, which is to be inserted, is smaller than
+ // actual array value
+ while (temp < a[i] && (i>= 0))
+ {
+ // always copy the value from the array field before
+ // so the gap "walks" to the left, until a[i] is at the right place
+ // and we can put temp in it.
+ a[i+1]=a[i];
+ i--;
+ }
+ // i+1 to compensate the last i--, because we want a[i] before the last i--
+ a[i+1]=temp;
+ }
+
+ }
+} // end function insertionSort
\ No newline at end of file diff --git a/Bachelor/Prog1/Prakt4/prg1p4_2/prg1p4_2.dsp b/Bachelor/Prog1/Prakt4/prg1p4_2/prg1p4_2.dsp new file mode 100644 index 0000000..954904e --- /dev/null +++ b/Bachelor/Prog1/Prakt4/prg1p4_2/prg1p4_2.dsp @@ -0,0 +1,100 @@ +# Microsoft Developer Studio Project File - Name="prg1p4_2" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** NICHT BEARBEITEN **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=prg1p4_2 - Win32 Debug
+!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
+!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
+!MESSAGE
+!MESSAGE NMAKE /f "prg1p4_2.mak".
+!MESSAGE
+!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
+!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
+!MESSAGE
+!MESSAGE NMAKE /f "prg1p4_2.mak" CFG="prg1p4_2 - Win32 Debug"
+!MESSAGE
+!MESSAGE Für die Konfiguration stehen zur Auswahl:
+!MESSAGE
+!MESSAGE "prg1p4_2 - Win32 Release" (basierend auf "Win32 (x86) Console Application")
+!MESSAGE "prg1p4_2 - Win32 Debug" (basierend auf "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "prg1p4_2 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x407 /d "NDEBUG"
+# ADD RSC /l 0x407 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF "$(CFG)" == "prg1p4_2 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x407 /d "_DEBUG"
+# ADD RSC /l 0x407 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "prg1p4_2 - Win32 Release"
+# Name "prg1p4_2 - Win32 Debug"
+# Begin Group "Quellcodedateien"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\main.cpp
+# End Source File
+# End Group
+# Begin Group "Header-Dateien"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Ressourcendateien"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/Bachelor/Prog1/Prakt4/prg1p4_2/prg1p4_2.dsw b/Bachelor/Prog1/Prakt4/prg1p4_2/prg1p4_2.dsw new file mode 100644 index 0000000..fe3d2a4 --- /dev/null +++ b/Bachelor/Prog1/Prakt4/prg1p4_2/prg1p4_2.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN!
+
+###############################################################################
+
+Project: "prg1p4_2"=.\prg1p4_2.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
|
