diff --git a/C++/bubble_sort.cpp b/C++/bubble_sort.cpp index b91460c..9d13da8 100644 --- a/C++/bubble_sort.cpp +++ b/C++/bubble_sort.cpp @@ -10,19 +10,19 @@ int main() int a[n]; cout<<"Enter the array elements: "; - for(i=0;i>a[i]; - for(i=1;ii;j--) { - if(a[j]>a[j+1]) + if(a[j] -using namespace std; - -template -void insertionsort(vector &array){ - int n = array.size(); - - for(int i = 1; i < n; i++){ - for(int j = i; j > 0 and array[j-1] > array[j]; j--){ - swap(array[j-1], array[j]); - } - } +#include + +void insertionSort (int array[], int array_size) { + int i, j, k; + + for (i = 1; i < array_size; i++) { + k = array[i]; + j = i - 1; + + while ((j >= 0) && (array[j] > k)) { + array[j + 1] = array[j]; + j--; + } + array[j + 1] = k; + } + } -int main() -{ - srand((unsigned int)time(NULL)); - vector arr; - for(int i = 0; i < 10; i++) arr.emplace_back(rand()%1000); - insertionsort(arr); - for(int i = 0; i < arr.size(); i++){ - cout << arr[i] << " "; - } - cout << endl; - return 0; -} + +int main (void) { + + int i; + int array[10] = {3, 6, 1, 7, 2, 0, 4, 5, 9, 8}; + + printf(" array: "); + for (i = 0; i < sizeof(array) / sizeof(array[0]); i++) { + cout << array[i] << ' '; + } + cout << endl; + + insertionSort(array, sizeof(array) / sizeof(array[0])); + + printf("sorted array: "); + for (i = 0; i < sizeof(array) / sizeof(array[0]); i++) { + cout << array[i] << ' '; + } + cout << endl; + + return 0; +} diff --git a/C++/quicksort.cpp b/C++/quicksort.cpp index 1a1c268..9261059 100644 --- a/C++/quicksort.cpp +++ b/C++/quicksort.cpp @@ -1,38 +1,54 @@ -#include -using namespace std; - -template -void qsfunc(vector &array, int left, int right){ - if(left >= right) return; - int p = array[left]; - - int l = left, r = right; - while(1){ - while(l < right and array[l] < p) l++; - while(r > left and array[r] > p) r--; - if(l >= r) break; - swap(array[l], array[r]); - } - - qsfunc(array, left, l-1); - qsfunc(array, l+1, right); +#include + +void swap(int a, int b) +{ + int t = a; + a = b; + b = t; +} + +int partition (int array[], int l, int r) { + int pivot = array[r]; + int i = (l - 1); + + for (int j = l; j <= r - 1; j++) { + if (array[j] <= pivot) { + i++; + swap(&array[i], &array[j]); + } + } + swap(&array[i + 1], &array[r]); + return (i + 1); } -template -void quicksort(vector &array){ - int n = array.size(); - qsfunc(array, 0, n-1); +void quickSort(int array[], int l, int r) { + if (l < r) { + int pivot = partition(array, l, r); + quickSort(array, l, pivot - 1); + quickSort(array, pivot + 1, r); + } } -int main() -{ - srand((unsigned int)time(NULL)); - vector arr; - for(int i = 0; i < 10; i++) arr.emplace_back(rand()%1000); - quicksort(arr); - for(int i = 0; i < arr.size(); i++){ - cout << arr[i] << " "; - } - cout << endl; - return 0; -} + + +int main (void) { + + int i; + int array[10] = {3, 6, 1, 7, 2, 0, 4, 5, 9, 8}; + + printf(" array: "); + for (i = 0; i < sizeof(array) / sizeof(array[0]); i++) { + cout << array[i] << " "; + } + cout << endl; + + quickSort(array, 0, sizeof(array) / sizeof(array[0]) - 1); + + printf("sorted array: "); + for (i = 0; i < sizeof(array) / sizeof(array[0]); i++) { + cout << array[i] << " "; + } + cout << endl; + + return 0; +} diff --git a/C++/selectionsort.cpp b/C++/selectionsort.cpp index e2b2f64..8f1b3f1 100644 --- a/C++/selectionsort.cpp +++ b/C++/selectionsort.cpp @@ -2,11 +2,11 @@ #include using namespace std; -void swap(int *xp, int *yp) +void swap(int xp, int yp) { - int temp = *xp; - *xp = *yp; - *yp = temp; + int temp = xp; + xp = yp; + yp = temp; } void selectionSort(int arr[], int n)