Java程序进行Gnome排序

Gnome Sort一次只能处理一种元素,并将其移到实际位置。让我们看一个实现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]

名为Demo的类包含名为gnome_sort的静态函数。在此,将变量“索引”分配给0。如果该索引值小于数组的长度,则检查索引值是否为0。如果为0,则将其递增1。否则,如果值为0。一个特定的索引大于数组'index-1'的值,一个名为'temp'的变量被赋值为0,并且元素被交换。“索引”值递减。

在main函数中,使用某些值定义一个数组,并在该数组和数组的长度上调用'gnome_sort'函数。输出被打印在控制台上。