Stooge sort: Sorting by Exchanging
2015-11-12 11:41
417 查看
Stooge sort
Animation
Visualization of Stooge sort.
Complexity
Class | Sorting algorithm |
---|---|
Data structure | Array |
Worst case performance | O(nlog3/log1.5) |
Worst case space complexity | O(n) |
Java program
/** * User: >_< * Date: 11/12/15 * Time: 11:19 AM */ public class StoogeSort { public static void stooge_sort(int[] input, int i, int j){ if(input[j] < input[i]){ int temp = input[i]; input[i] = input[j]; input[j] = temp; } if((j-i+1) > 2){ int t = (j-i+1) / 3; stooge_sort(input, i, j-t); stooge_sort(input, i+t, j); stooge_sort(input, i, j-t); } } 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! stooge_sort(number, 0, number.length-1); //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/Stooge_sort相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 在命令行用 sort 进行排序
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树