Guest User

Untitled

a guest
Sep 23rd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include <iostream>
  4. #include <vector>
  5.  
  6. template <class T>
  7. class Sorting {
  8.  
  9. private:
  10.  
  11. static void numWithSmallestIndex(std::size_t idx, std::size_t &minIndex, const std::vector<T> &arr) {
  12.  
  13. for (std::size_t i = idx; i < arr.size(); ++i) {
  14. if(arr.at(i) < arr.at(minIndex)) {
  15. minIndex = i;
  16. }
  17. }
  18.  
  19. }
  20.  
  21. public:
  22.  
  23. static void selectionSort(std::vector<T> &arr) {
  24.  
  25. for (std::size_t i = 0; i < arr.size() - 1; ++i) {
  26. std::size_t minIndex = i;
  27. numWithSmallestIndex(i + 1, minIndex, arr);
  28.  
  29. if(minIndex != i) {
  30. std::swap(arr.at(i), arr.at(minIndex));
  31. minIndex = i;
  32. }
  33. }
  34.  
  35. }
  36.  
  37. static void insertionSort(std::vector<T> &arr) {
  38.  
  39. for (std::size_t i = 1; i < arr.size(); i++) {
  40. for (std::size_t j = i; j > 0 && arr[j - 1] > arr[j]; j--) {
  41. std::swap(arr.at(j), arr.at(j - 1));
  42. }
  43. }
  44.  
  45. }
  46.  
  47. static void bubbleSort(std::vector<T> &arr) {
  48.  
  49. for (std::size_t i = 0; i < arr.size(); ++i) {
  50. for (std::size_t j = 0; j < arr.size() - i - 1; ++j) {
  51. if(arr.at(j) > arr.at(j + 1)) {
  52. std::swap(arr.at(j), arr.at(j + 1));
  53. }
  54. }
  55. }
  56.  
  57. }
  58.  
  59.  
  60. };
Add Comment
Please, Sign In to add comment