Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "algorithm.h"
- //
- // Private
- //
- //
- // Public
- //
- void bubble_sort(int *a, int n)
- {
- int i,j,temp;
- for(i=0;i<n;i++){
- for(j=i+1;j<n;j++){
- bool flag = false;
- if(a[i] > a[j]){
- temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- flag = true;
- }
- if(!flag)
- return;
- }
- }
- }
- void insertion_sort(int *a, int n) { //times
- int i,j,key;
- for(j=2;j<n;j++){
- key = a[j];
- i = j - 1; //n - 1
- while(i >= 0 && a[i] > key){
- a[i + 1] = a[i];
- i = i - 1;
- }
- a[i + 1] = key;
- }
- }
- void quick_sort(int *a, int n) //skapa en egen med tre anrop för sen kalla på den härifrån?
- {
- if (n < 2)
- return;
- int pivot = a[n - 1]; //pivot == mitten i arrayen
- int *left = a; //left pekar på pos 0 i början.
- int *right = a + n - 1; //right pekar på sista platsen i arrayen
- while (left <= right) {
- if (*left < pivot) {
- left++; //kommer fungera som att left respektive right jämför sina värden med pivot
- }
- else if (*right > pivot) {
- right--;
- }
- else {
- int temp = *left;
- *left = *right;
- *right = temp;
- left++;
- right--;
- }
- }
- quick_sort(a, right - a + 1);
- quick_sort(left, a + n - left);
- }
- bool linear_search(const int *a, int n, int v)
- {
- int i;
- for(i = 0;i < n;i++){
- if(a[i] == v)
- return true;
- }
- return false;
- }
- bool binary_search(const int *a, int n, int v){
- bool retur = false;
- int low = 0;
- int high = n - 1;
- int mid;
- int found = 0;
- while (low <= high && !found)
- {
- mid = ( high - low ) / 2;
- if(a[mid] == v){
- found = 1;
- }
- else if( a[mid] > v){
- high = mid - 1;
- }else{
- low = mid + 1;
- }
- if(found == 1){
- retur = true;
- }else{
- retur = false;
- }
- }
- return retur;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement