এক ডাইমেনশনাল অ্যারে N এলিমেন্ট ইনপুট নিলে, সেটিকে দুটি হälfte ভাগ করে প্রথম হälfte অ্যাসেন্ডিং অর্ডারে এবং দ্বিতীয় হälfte ডিসেন্ডিং অর্ডারে সাজাতে হবে।
লজিক
b = n/2(মিড পয়েন্ট)।0থেকেb-1পর্যন্ত অ্যাসেন্ডিং সর্ট।bথেকেn-1পর্যন্ত ডিসেন্ডিং সর্ট।- দুটি হälfte আলাদা আলাদা প্রিন্ট।
C কোড
#include <stdio.h>
int main() {
int i, j, a, n, b, number[30];
printf("Enter N: "); scanf("%d", &n);
b = n/2;
printf("Enter numbers: ");
for (i = 0; i < n; ++i) scanf("%d", &number[i]);
// First half ascending
for (i = 0; i < b; ++i)
for (j = i+1; j < b; ++j)
if (number[i] > number[j]) swap(number[i], number[j]);
// Second half descending
for (i = b; i < n; ++i)
for (j = i+1; j < n; ++j)
if (number[i] < number[j]) swap(number[i], number[j]);
printf("1st half ascending: ");
for (i = 0; i < b; ++i) printf("%d ", number[i]);
printf("\n2nd half descending: ");
for (i = b; i < n; ++i) printf("%d ", number[i]);
return 0;
}
নমুনা আউটপুট
Enter N: 10 Numbers: 20 34 23 11 45 56 78 98 76 54 1st half ascending: 11 20 23 34 45 2nd half descending: 98 78 76 56 54