Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // Sortiranje_Vaja
- //
- // Created by Tilen Nipic on 17/11/2019.
- // Copyright © 2019 Tilen Nipic. All rights reserved.
- //
- #include <iostream>
- #include <array>
- void SelectionSort(int polje[], int velikost);
- void QuickSort();
- void BubbleSort(int polje[], int velikost);
- void swap(int a[], int b[]);
- void izpisPolja(int polje[], int velikost);
- int partition (int arr[], int low, int high);
- void quickSort(int arr[], int low, int high);
- using namespace std;
- int main(int argc, const char * argv[]) {
- int polje[20] = {20, 9 ,1, 30, 14, 3, 5, 8, 22, 16, 69, 100, 45, 32, 11, 4, 7, 4, 19, 25};
- int velikost = sizeof(polje) / sizeof(polje[0]);
- BubbleSort(polje, velikost);
- izpisPolja(polje, velikost);
- cout << endl;
- int polje2[20] = {20, 9 ,1, 30, 14, 3, 5, 8, 22, 16, 69, 100, 45, 32, 11, 4, 7, 4, 19, 25};
- SelectionSort(polje2, velikost);
- izpisPolja(polje2, velikost);
- return 0;
- }
- void swap(int *a, int *b){ // zamenja stevilki v polju. PREK REFERENC SEVEDA
- int zacasno;
- zacasno = *b;
- *b = *a;
- *a = zacasno;
- }
- void izpisPolja(int polje[], int velikost){ // IZPISE POLJE SIMPL KO PASUL
- for (int i = 0; i < velikost; i++) {
- cout << polje[i] << " ";
- }
- }
- void BubbleSort(int polje[], int velikost){ //vedno najvecjo postavi na konc vsakic ko prvi for se izvajaa
- for (int i = 0; i < velikost - 1; i++) {
- for (int j = 0 ; j < velikost - 1 - i; j++) {
- if(polje[j] > polje[j + 1])
- swap(polje[j], polje[j+1]);
- }
- }
- }
- void SelectionSort(int polje[], int velikost){ // vsakic postavi najmanjso na zacetek pa se nadaljuje z naslednjim mestom
- int minIndex;
- for (int i = 0; i < velikost; i++) {
- for(int j = i; j < velikost; j++){
- if (j == i) {
- minIndex = j;
- }
- if(polje[j] < polje[minIndex])
- minIndex = j;
- }
- swap(polje[minIndex], polje[i]);
- }
- }
- int partition (int arr[], int low, int high) // NIAM POJMA KOPIRO KUJ
- {
- int pivot = arr[high]; // pivot
- int i = (low - 1); // Index of smaller element
- for (int j = low; j <= high - 1; j++)
- {
- // If current element is smaller than the pivot
- if (arr[j] < pivot)
- {
- i++; // increment index of smaller element
- swap(&arr[i], &arr[j]);
- }
- }
- swap(&arr[i + 1], &arr[high]);
- return (i + 1);
- }
- void quickSort(int arr[], int low, int high)
- {
- if (low < high)
- {
- /* pi is partitioning index, arr[p] is now
- at right place */
- int pi = partition(arr, low, high);
- // Separately sort elements before
- // partition and after partition
- quickSort(arr, low, pi - 1);
- quickSort(arr, pi + 1, high);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement