From: "johny.lam" Date: 2007-07-19T17:30:01+09:00 Subject: confused, need help with a sorting program I was doing the recursive sorting program in Chapter 10 of Chris Pine's learning to program and i wrote this: def sort some_array recursive_sort some_array, [] end def recursive_sort unsorted_array, sorted_array if unsorted_array.length != 0 0.upto(unsorted_array.length-2) do |i| if (unsorted_array[i+1] != nil) and (unsorted_array[i] < unsorted_array[i+1]) unsorted_array[i], unsorted_array[i+1] = unsorted_array[i+1], unsorted_array[i] end end sorted_array.push(unsorted_array.last) unsorted_array.pop sort(unsorted_array) end if unsorted_array.length==0 puts sorted_array end end word=[] puts 'Input Words' while word.last!='' word.push gets.chomp.downcase end sort(word) --------------------------------------------------------- what i don't get is that this program sorts the words into reverse alphabetical order. but if i switch the less than sign in "if (unsorted_array[i+1] != nil) and (unsorted_array[i] < unsorted_array[i+1])" to a greater than sign the program works correctly. what i am trying to is move the smallest word into the sorted_array but if i use the greater than sign wouldn't the move the biggest word into the sorted_array? i'm really new to this, so please pardon my misunderstanding.