#include <stdio.h> int linear_search (int a[], int n, int num); int binary_search(int a[], int n, int num); int find_min (int a[], int start, int n); void swap (int *a, int *b); void selection_sort (int a[], int n);void selection_sort (int a[], int n) { int i,mini; for(i=0;i<n;i++) { mini=find_min(a,i,n); swap(&a[i],&a[mini]); } } void swap (int *a, int *b) {
*a=*a+*b; *b=*a-*b; *a=*a-*b; } int find_min(int a[], int start, int n) { int min=a[start],index=start,i; for(i=start+1;i<n;i++) { if(min>a[i]) { min=a[i]; index=i; } } return index; } int binary_search(int a[], int n, int num) { int high=n-1,low=0,middle; while(low<=high) { middle=(high+low)/2; if(a[middle]==num) return middle; else { if(a[middle]>num) high=middle-1; else low=middle+1; } } return -1; } int linear_search (int a[], int n, int num) { int i; for(i=0;i<n;i++) { if(a[i]==num) return 1; } return 0;
} int main(void) { int arr[6]={3,2,1,4,5,6}; int i,n=6; selection_sort(arr,n); for(i=0;i<n;i++) printf("%d,",arr[i]); return 0; }
|