Advertisement
Guest User

paste

a guest
Dec 13th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.91 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<time.h>
  4. #include"stdbool.h"
  5. #define size 1000
  6.  
  7. bool LessEqualSorted(int bubble[], int SIZE);
  8. void bubbleSort(int bubble[], int SIZE); //Dem Programm angeben dass eine Funktion benutzt wird
  9. void selectionSort(int selection[], int SIZE);
  10.  
  11. int main(void) {
  12.  
  13. int i = 0;
  14.  
  15. int bubble[size];
  16. int selection[size];
  17.  
  18. srand(time(NULL));
  19. for (i = 0; i < size; i++) {
  20. bubble[i] = (rand() % 1001);
  21. }
  22.  
  23. srand(time(NULL));
  24. for (int i = 0; i < 1000; i++) {
  25. selection[i] = (((int)rand() % 1001) - 500); //doppelter positiver Wertebereich minus den positiven Bereich (von 1000 bis -500)
  26. }
  27. //-------------------------------------BUBBLE------------------------------------------------------------//
  28. puts("Unsortiertes Bubble Array:");
  29.  
  30. for (i = 0; i < size; ++i) { //Ausgabe Unsortierter Bubble
  31. printf("%4d", bubble[i]);
  32. }
  33. LessEqualSorted(bubble, size); //Ausgabe ob es unsortiert oder sortiert ist
  34.  
  35. bubbleSort(bubble, size); //Anwendung der Bubble Sort Funktion
  36.  
  37. puts("Sortiertes Bubble Array:");
  38.  
  39. for (int i = 0; i < size; ++i) { //Ausgabe der sortierten Bubble
  40. printf("%4d", bubble[i]);
  41. }
  42.  
  43. LessEqualSorted(bubble, size); //Ausgabe ob sortiert oder nicht
  44.  
  45. //--------------------------------------SELECTION---------------------------------------------------//
  46.  
  47. puts("\nUnsortiertes Selection Array:");
  48.  
  49. for (int i = 0; i < size; ++i) { //Ausgabe unsortiertes Selection
  50. printf("%4d", selection[i]);
  51. }
  52.  
  53. LessEqualSorted(selection, size); //Ausgabe ob sortiert oder nicht
  54.  
  55. selectionSort(selection, size); //Anwendung der selection sort funktion
  56.  
  57. puts("Sortiertes Selection Array:");
  58.  
  59. for (int i = 0; i < size; ++i) { //Ausgabe sortiertes selection
  60. printf("%4d", selection[i]);
  61. }
  62.  
  63. LessEqualSorted(selection, size); //Ausgabe ob sortiert oder nicht
  64.  
  65. //-----------------------------ENDE-------------------------//
  66. return 0;
  67. }
  68.  
  69. void bubbleSort(int bubble[], int SIZE) {
  70. int temp = 0;
  71. int first = 0;
  72. int next = 0;
  73.  
  74. for (first = 1; first < size; ++first) {
  75. for (next = 0; next < size - 1; ++next) { //diese for Schleife läuft immer einmal weniger als die größe des Arrays durch weil dann alle Elemente verglichen wurden
  76. if (bubble[next] > bubble[next + 1]) { //das Element wird mit dem darauffolgendem Element verglichen
  77. temp = bubble[next]; // das größere Element wird Temporär abgespeichert
  78. bubble[next] = bubble[next + 1]; // der Stelle an dem sich das größere element befindet wird dem kleineren zugewiesen
  79. bubble[next + 1] = temp; // der Stelle an dem sich das kleinere Element befindet wird das temporäre bzw. das größere Element zugewiesen
  80. }
  81. }
  82. }
  83. }
  84.  
  85. void selectionSort(int selection[], int SIZE) {
  86.  
  87. int first = 0;
  88. int next = 0;
  89. int min = 0;
  90. int min_pos = 0;
  91. int min_found = 0;
  92. int temp = 0;
  93.  
  94. for (int j = 0; j < size; j++) { //das Programm muss nach der inneren Schleife erneut durchlaufen um alle Zahlen zu sortieren
  95. for (first = 0; first < size; first++) {
  96. for (next = first + 1; next < size; next++) {
  97. if (selection[first] > selection[next]) { //Das erste Element wird mit zweiten elements diesen durchlaufs verglichen
  98. min = selection[next]; //Die kleinere Zahl (min) wird an die Position des größeren Elements gerückt
  99. min_pos = next; //An der Position der an der sich das kleinere Element befindet wird die min_pos gesetzt
  100. min_found = 1; //Ein Element gefunden
  101. }
  102. }
  103. if (min_found == 1) {
  104. temp = selection[first]; //Wenn ein Element gefunden wurde wird die größere Zahl temp abgespeichert
  105. selection[first] = min; //An der Stelle der größeren Zahl wird die kleinere gesetzt
  106. selection[min_pos] = temp; //An der Position der kleineren Zahl wird die größere Zahl eingesetzt
  107. min_found = 0; //min_found zurück auf 0 gesetzt
  108. }
  109. }
  110. }
  111. }
  112.  
  113.  
  114. bool LessEqualSorted(int arr[], int SIZE) {
  115.  
  116. int first = 0;
  117. int next = 0;
  118.  
  119. bool sorted = 0; //gibt nur 0 und 1 zurück für true und false
  120.  
  121. for (first = 1; first < size; ++first) {
  122. for (next = 0; next < size - 1; ++next) {
  123. if (arr[next] > arr[next + 1]) { //Es wird geprüft ob immer das daruffolgende Element sortiert ist
  124. sorted = 0;
  125. break;
  126. }
  127. else if (arr[next] < arr[next + 1]) {
  128. sorted = 1;
  129. }
  130. }
  131. if (sorted == 0) {
  132. puts("False");
  133. puts("Das Array ist NICHT sortiert!\n");
  134. return false;
  135. break;
  136. }
  137. }
  138.  
  139. if (sorted == 1) {
  140. puts("True");
  141. puts("Das Array ist aufsteigend sortiert!");
  142. return true;
  143. }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement