Optimized Gnome sort: Sorting by Exchanging
2015-11-12 11:08
357 查看
Java program
/** * User: >_< * Date: 11/12/15 * Time: 10:51 AM */ public class OptimizedGnomeSort { public static void optimized_gnome_sort(int[] input){ int pos = 1; int last = 0; while (pos < input.length){ if(input[pos] >= input[pos-1]){ if(last != 0){ pos = last; last = 0; } pos++; } else{ int temp = input[pos]; input[pos] = input[pos-1]; input[pos-1] = temp; if(pos > 1){ if(last == 0) last = pos; pos--; }else{ pos++; } } } } public static void main(String[] args) { //Prepare the data int[] number = {503,87,512,61,908,170,897,275,653,426,154,509,612,677,765,703}; //Output unsorted Keys System.out.println("Unsorted Ks:"); for(int i=1; i<=number.length; i++){ System.out.println(i+":"+number[i-1]); } System.out.println(); //Kernel of the Algorithm! optimized_gnome_sort(number); //Output sorted Keys System.out.println("Sorted Ks:"); for(int i=1; i<=number.length; i++){ System.out.println(i+":"+number[i-1]); } } }
Outputs
Unsorted Ks: 1:503 2:87 3:512 4:61 5:908 6:170 7:897 8:275 9:653 10:426 11:154 12:509 13:612 14:677 15:765 16:703 Sorted Ks: 1:61 2:87 3:154 4:170 5:275 6:426 7:503 8:509 9:512 10:612 11:653 12:677 13:703 14:765 15:897 16:908
Reference
https://en.wikipedia.org/wiki/Gnome_sort相关文章推荐
- GNOME Linux 桌面入门
- 在命令行用 sort 进行排序
- 使用 GNOME 优化工具自定义 Linux 桌面的 10 种方法
- 如何在 Ubuntu 桌面手动添加应用快捷方式
- Linux Shell - 如何使用sort与uniq命令删除重复的文本行
- Redis sort 排序命令详解
- 批处理命令教学之字符串排序(sort)
- C++ 关于STL中sort()对struct排序的方法
- C#中Arraylist的sort函数用法实例分析
- Js中sort()方法的用法
- 如何写JS数组sort的比较函数
- javascript中sort()的用法实例分析
- js模拟实现Array的sort方法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- js表数据排序 sort table data
- javascript 数组排序函数sort和reverse使用介绍
- JavaScript Table排序 2.0 (更新)
- js中数组(Array)的排序(sort)注意事项说明
- Javascript数组的排序 sort()方法和reverse()方法
- Java数据结构及算法实例:插入排序 Insertion Sort