Advertisement
Guest User

algorithmer

a guest
Nov 13th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. #include "algorithm.h"
  2.  
  3.  
  4. //
  5. // Private
  6. //
  7.  
  8. //
  9. // Public
  10. //
  11. void bubble_sort(int *a, int n)
  12. {
  13.  
  14. int i,j,temp;
  15. for(i=0;i<n;i++){
  16.  
  17. for(j=i+1;j<n;j++){
  18.  
  19. if(a[i] > a[j]){
  20.  
  21. temp = a[i];
  22. a[i] = a[j];
  23. a[j] = temp;
  24. }
  25. }
  26. }
  27.  
  28. }
  29.  
  30. void insertion_sort(int *a, int n) { //times
  31.  
  32. int i,j,key;
  33. for(j=2;j<n;j++){ //n
  34. key = a[j]; //n - 1
  35. i = j - 1; //n - 1
  36.  
  37. while(i >= 0 && a[i] > key){ //arrebarre du får läsa kapitel intro i boken
  38. a[i + 1] = a[i];
  39. i = i - 1;
  40. }
  41. a[i + 1] = key;
  42. }
  43. }
  44.  
  45. void quick_sort(int *a, int n) //skapa en egen med tre anrop för sen kalla på den härifrån?
  46. {
  47.  
  48. /*
  49. if (n < 2)
  50. return;
  51.  
  52. int pivot = a[n / 2]; //pivot == mitten i arrayen
  53. int *left = a; //left pekar på pos 0 i början.
  54. int *right = a + n - 1; //right pekar på sista platsen i arrayen
  55. while (left <= right) {
  56. if (*left < pivot) {
  57. left++; //kommer fungera som att left respektive right jämför sina värden med pivot
  58. }
  59. else if (*right > pivot) {
  60. right--;
  61. }
  62. else {
  63. int temp = *left;
  64. *left = *right;
  65. *right = temp;
  66. left++;
  67. right--;
  68. }
  69. }
  70. quick_sort(a, right - a + 1);
  71. quick_sort(left, a + n - left);
  72.  
  73. }
  74. */
  75.  
  76. bool linear_search(const int *a, int n, int v)
  77. {
  78. int i;
  79. for(i = 0;i < n;i++){
  80. if(a[i] == v)
  81. return true;
  82. }
  83. return false;
  84. }
  85.  
  86. bool binary_search(const int *a, int n, int v){
  87. int i;
  88. int low = 0;
  89. int high = n - 1;
  90. int mid;
  91. int found = 0;
  92. while (low <= high && !found){
  93. mid = ( high - low ) / 2;
  94. if(a[mid] == v){
  95. found = 1;
  96. }
  97. else if( a[mid] > v){
  98. high = mid - 1;
  99.  
  100. }else{
  101. low = mid + 1;
  102.  
  103. }
  104. if(found == 1){
  105. return true;
  106. }else{
  107. return false;
  108. }
  109.  
  110.  
  111. }
  112.  
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement