Selection सोर्ट सर्चिंग और सोर्टिंग का मेल है
हर पास में , बिना जमा हुआ नंबर जो सबसे छोटा या सबसे बड़ा हो , वो अपनी सही जगह पर जमा दिया जाता है ।selection सोर्ट को हमे अर्रे के कुल नम्बरों की संख्या से एक कम बार चलाना पड़ता है । इस सोर्ट में दो लूप होते है । अंदर वाला लूप तो अगली छोटी या बड़ी संख्या का पता लगता है और बाहर वाला लूप उसको उसकी सही जगह पर रख देता है ।
उदहारण के लिए निचे दिया हुआ अर्रे देखिये :
64 25 12 22 11 <- हमारे पास शुरू में यह अर्रे है
11 25 12 22 64 <-पहले पास में हमने 64 को अर्रे के हर एलिमेंट से compare किया और उसको उसकी सही जगह पर जमा दिया जो आखिर वाली या
11 12 25 22 64 <- दुसरे पास में हमने पहले एलिमेंट को दुसरे से compare किया और पाया की यह ठीक जमे हुए है , उसके बाद हमने दुसरे एलिमेंट को ऊपर वाले अर्रे में (25) को 12 से compare किया और फिर उनको ठीक से जमा दिया
11 12 22 25 64 <- अब हमे 22 को 25 से compare किया और उनकी position को ठीक क्या
11 12 22 25 64 <- अंत में हमारे पास sorted अर्रे है , जो हमारा पहला लक्ष्य था ।
// SelectionSort.java - integer अर्रे को सोर्ट करने का तरीका
class SelectionSort {
public static void main(String[] args) {
int[] a = {11,12,22,25,64};
sort(a);
for (int i = 0; i < a.length; i++){
System.out.println(a[i]);
}
}
// sort function जो अर्रे को क्रम अनुसार जमाएगा
static void sort(int[] data) {
int next, indexOfNext;
for (next = 0; next < data.length - 1; next++) {
indexOfNext = min(data,next,data.length - 1);
swap(data, indexOfNext, next);
}
}
// दी गए सभी इंडेक्स में से
// सबसे छोटे एलेमेन्ट की इंडेक्स का पता लगाना
static int min(int[] data, int start, int end) {
int indexOfMin = start; // initial guess
for (int i = start+1; i <= end; i++)
if (data[i] < data[indexOfMin])
indexOfMin = i; // found a smaller value
return indexOfMin;
}
// अर्रे की entries की अदला बदली करना
static void swap(int[] data, int first, int second){
int temp;
temp = data[first];
data[first] = data[second];
data[second] = temp;
}
}
No comments:
Post a Comment