C Program to sort half of the Array elements in ascending order and next half in descending order

Get array size n and n elements of array, then sort the first half elements of array in ascending order and sort second half elements of array in descending order.

Sample Input 1:

5 5 7 9 3 1

Sample Output 1:

1 3 9 7 5

Try your Solution

Strongly recommended to Solve it on your own, Don't directly go to the solution given below.

#include<stdio.h> int main() { //write your code here }

Program or Solution

				
			
					
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int *a,n,i,j,temp;
	printf("Enter size of array:");
	scanf("%d",&n);

	a=malloc(sizeof(int)*n);

	printf("Enter %d Elements:",n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}

	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n/2;j++)
		{
			if(a[j]>a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}

		for(j=n/2;j<n-1;j++)
		{
			if(a[j]<a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
	printf("After sorting first half in ascending and second half in descending order:\n");
	for(i=0;i<n;i++)
	{
		printf("%d ",a[i]);
	}
	return 0;
				
}
			
				
			

Program Explanation

Bubble Sort Algorithm: Refer : https://www.tutorialspoint.com/data_structures_algorithms/bubble_sort_algorithm.htm

Comments