Tampilkan postingan dengan label Programming. Tampilkan semua postingan
Tampilkan postingan dengan label Programming. Tampilkan semua postingan

Senin, 23 Maret 2015

Source Code Randomized Quick Sort C++

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

void swap (int *a, int *b);
void quicksort(int s[], int l, int h);
int partition(int s[], int l, int h);

int n;
void swap(int *a, int *b)
{
   int x;
   x = *a;
   *a = *b;
   *b = x;
}

void quicksort(int s[], int l, int h)
{
   int p; /* index of partition */
   if ((h - l) > 0) {
      p = partition(s, l, h);
      quicksort(s, l, p - 1);
      quicksort(s, p + 1, h);
   }
}

int partition(int s[], int l, int h)
{
    int i;
    int p; /* pivot element index */
    int firsthigh; /* divider position for pivot element */
    p = l + (rand() % (h - l + 1));
    swap(&s[p], &s[h]);
    firsthigh = l;
    for (i = l; i < h; i++)
        if(s[i] < s[h]) {
            swap(&s[i], &s[firsthigh]);
            firsthigh++;
        }
    swap(&s[h], &s[firsthigh]);
    return(firsthigh);
}

int main()
{
    int s[20],i;
    printf("Randomized Quick Sort");
    printf("\nEnter the no. of elements= ");
    scanf("%d", &n);
    printf("\nEnter the elements one by one :\n");
    for(i=0;i<n;i++)
        scanf("%d",&s[i]);
    quicksort(s,0,n-1);
    printf("\nAfter sorting:\n");
    for(i=0;i<n;i++)
        printf("%d\t",s[i]);
    getch();

}


nb : mau ngopas? silahkan berikan email anda di komentar dan berikan alasan anda atau hubungi email kami :)

Minggu, 22 Maret 2015

Source Code Merge Sort C++

#include <iostream>
using namespace std;

int a[50];
void merge(int low,int mid,int high);
int cetak(int a[], int n);

void merge_sort(int low,int high){
    int mid;
    if(low<high){
        mid=(low+high)/2;
        merge_sort(low,mid);   
        merge_sort(mid+1,high);
        merge(low,mid,high);
    }
}

void merge(int low,int mid,int high){
    int h,i,j,b[50],k;
    h=low;
    i=low;
    j=mid+1;
   
    while((h<=mid)&&(j<=high)){
        if(a[h]<=a[j]){
            b[i]=a[h];
            h++;
        }
        else{
            b[i]=a[j];
            j++;
        }
    i++;
    }
   
    if(h>mid){
        for(k=j;k<=high;k++){
            b[i]=a[k];
            i++;
        }
    }
    else{
        for(k=h;k<=mid;k++){
            b[i]=a[k];
            i++;
        }
    }
    for(k=low;k<=high;k++)
       a[k]=b[k];
}

int cetak(int a[], int n){
    for(int i=n;i>=1;i--)
        cout<<a[i]<<"\t";
}
int main()
{
    int num,i;
    cout<<"Panjang array: ";
    cin>>num;
    for(i=1;i<=num;i++){
        cout<<"Data ke-"<<i<<" : ";
        cin>>a[i] ;
    }
    merge_sort(1,num);
    cetak(a,num);
    cout<<endl;
    system("pause");
}



nb : mau ngopas? silahkan berikan email anda di komentar dan berikan alasan anda atau hubungi email kami :)