Gnome Sort এক সময়ে একটি লেমেন্টের সাথে কাজ করে এবং এটিকে প্রকৃত অবস্থানে নিয়ে যায়। জিনোম সাজানোর জন্য একটি উদাহরণ দেখা যাক -
উদাহরণ
import java.util.Arrays; public class Demo{ static void gnome_sort(int my_arr[], int n){ int index = 0; while (index < n){ if (index == 0) index++; if (my_arr[index] >= my_arr[index - 1]) index++; else{ int temp = 0; temp = my_arr[index]; my_arr[index] = my_arr[index - 1]; my_arr[index - 1] = temp; index--; } } return; } public static void main(String[] args){ int my_arr[] = { 34, 67, 89, 11, 0 , -21 }; gnome_sort(my_arr, my_arr.length); System.out.println("The array after perfroming gnome sort on it is "); System.out.println(Arrays.toString(my_arr)); } }
আউটপুট
The array after perfroming gnome sort on it is [-21, 0, 11, 34, 67, 89]
ডেমো নামের একটি ক্লাসে 'gnome_sort' নামে একটি স্ট্যাটিক ফাংশন রয়েছে। এখানে, একটি ভেরিয়েবল 'ইনডেক্স' 0-কে বরাদ্দ করা হয়েছে। যদি সেই সূচকের মান অ্যারের দৈর্ঘ্যের চেয়ে কম হয়, তাহলে সূচকের মানটি 0-এর জন্য চেক করা হয়। যদি এটি 0 হয়, তাহলে এটি 1 দ্বারা বৃদ্ধি পাবে। অন্যথায়, যদি মান একটি নির্দিষ্ট সূচক অ্যারের 'index-1'-এর মানের থেকে বড়, 'temp' নামের একটি ভেরিয়েবল 0 বরাদ্দ করা হয় এবং উপাদানগুলি অদলবদল করা হয়। 'সূচক' মান হ্রাস পেয়েছে৷
৷প্রধান ফাংশনে, একটি অ্যারে নির্দিষ্ট মান দিয়ে সংজ্ঞায়িত করা হয় এবং এই অ্যারে এবং অ্যারের দৈর্ঘ্যের উপর 'gnome_sort' ফাংশন বলা হয়। আউটপুট কনসোলে প্রিন্ট করা হয়।