Header Ads Widget

Responsive Advertisement

Shorting Alogorithm : Bouble Short (Adaptive)

 


#include <stdio.h>

void scanArr(int arr[], int size)
{
    printf("Enter The Array Element : ");
    for (int i = 0; i < size; i++)
    {
        scanf("%d", &arr[i]);
    }
}

void printArr(int arr[], int size)
{
    printf("\nThe Array is : ");
    for (int i = 0; i < size; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

void bouble_short(int arr[], int size)
{
    int temp;
    for (int i = 0; i < size - 1; i++)
    {
        printf("Pass No : %d  ", i + 1);
        printArr(arr, size);
        for (int j = 0; j < size - 1 - i; j++)
        {
            if (arr[j] > arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}
void bouble_short_adaptive(int arr[], int size)
{
    int temp;
    int isShort = 0;
    for (int i = 0; i < size - 1; i++)
    {
        printf("Pass No : %d  ", i + 1);
        printArr(arr, size);
        for (int j = 0; j < size - 1 - i; j++)
        {
            isShort = 1;
            if (arr[j] > arr[j + 1])
            {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                isShort = 0;
            }
        }
        if (isShort)
        {
            return;
        }
    }
}

int main()
{
    int arr[] = {1,16,2,8,10,9};
    int size = sizeof(arr) / sizeof(int);
    // int arr[100];
    // int size;
    // printf("Enter The Size of Array : ");
    // scanf("%d", &size);
    // scanArr(arr, size);
    printArr(arr, size);
    //bouble_short(arr, size);
    //printArr(arr, size);
    bouble_short_adaptive(arr, size);
    printArr(arr, size);
    return 0;
}

Post a Comment

0 Comments