Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <algorithm>
- #define TYPE double
- #define LENGTH_LIMIT 50000
- using namespace std;
- struct thread_argument
- {
- int id; // user identification
- int from, length; // data range
- TYPE *data; // array
- TYPE max; // result
- };
- int rand32()
- {
- srand((int)time(NULL));
- return rand() * RAND_MAX + rand();
- }
- TYPE randomVal(TYPE minR,TYPE maxR){
- srand((int)time(NULL));
- TYPE range = (maxR - minR);
- TYPE div = RAND_MAX / range;
- return minR +(rand() / div);
- }
- void fill_array(TYPE *arr, int start, int end)
- {
- for (int i = start; i < end; i++)
- {
- arr[i] = rand32() % (end * 10); //LENGTH = atoi( arg[ 1 ] );
- }
- }
- void BubbleSort_dsc(TYPE *arr, int start, int end){
- TYPE tmp;
- for(int i = start; i < end; i++)
- {
- for(int j = start; j < end - (i-start+1); j++)
- {
- if(arr[j+1] > arr[j])
- {
- tmp = arr[j + 1];
- arr[j + 1] = arr[j];
- arr[j] = tmp;
- }
- }
- }
- }
- void BubbleSort_asc(TYPE *arr, int start, int end){
- TYPE tmp;
- for(int i = start; i < end; i++)
- {
- for(int j = start; j < end - (i-start+1); j++)
- {
- if(arr[j+1] < arr[j])
- {
- tmp = arr[j + 1];
- arr[j + 1] = arr[j];
- arr[j] = tmp;
- }
- }
- }
- }
- void SelectionSort_asc(TYPE *arr, int start, int end)
- { TYPE temp;
- for(int i = start; i < end; i++)
- {
- for(int j = i+1; j < end; j++)
- {
- if(arr[i] > arr[j])
- {
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- }
- }
- }
- }
- void SelectionSort_dsc(TYPE *arr, int start, int end)
- { TYPE temp;
- for(int i = start; i < end; i++)
- {
- for(int j = i+1; j < end; j++)
- {
- if(arr[i] < arr[j])
- {
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- }
- }
- }
- }
- void InsertionSort_asc(TYPE *arr, int start, int end)
- {
- TYPE temp;
- for (int i = start + 1; i < end; i++)
- {
- temp = arr[i];
- int j = i-1;
- while (j >= 0 && arr[j] > temp)
- {
- arr[j+1] = arr[j];
- j = j-1;
- }
- arr[j+1] = temp;
- }
- }
- void InsertionSort_dsc(TYPE *arr, int start, int end)
- {
- TYPE temp;
- for (int i = start + 1; i < end; i++)
- {
- temp = arr[i];
- int j = i-1;
- while (j >= 0 && arr[j] < temp)
- {
- arr[j+1] = arr[j];
- j = j-1;
- }
- arr[j+1] = temp;
- }
- }
- void merge_array(TYPE *arr, int start1, int end1 , int start2 , int end2)
- {
- TYPE *final_array = new TYPE [(end1-start1)+(end2-start2) ];
- int i = 0;
- while (start1 != end1 && start2 != end2)
- {
- if (arr[start1] < arr[start2])
- {
- final_array[i] = arr[start1];
- start1++;
- i++;
- }
- else
- {
- start2++;
- i++;
- }
- }
- }
- int main(int na, char **arg )
- {
- int length;
- int minR = 0;
- int maxR = 10000;
- cout << "Enter number of elements " << endl;
- cin >> length; //vymenit za length = atoi(arg[1])
- TYPE *arr = new TYPE [length];
- fill_array(arr,0, length);
- InsertionSort_dsc(arr,0,length);
- // Display the sorted data.
- cout << "Sorted array:" << endl;
- for (int i = 0; i < length; i++)
- {
- cout << arr[i] << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement