Hark的数据结构与算法练习之臭皮匠排序

编程入门 行业动态 更新时间:2024-10-25 06:29:22

Hark的数据结构与算法练习之臭<a href=https://www.elefans.com/category/jswz/34/1721098.html style=皮匠排序"/>

Hark的数据结构与算法练习之臭皮匠排序

算法说明

个人感觉是没有意义的算法,只是用来作为学术研究。或者说开拓一下思维。

从wikipedia copy来的一句解释的话:Stooge排序是一种低效的递归排序算法,甚至慢于冒泡排序。在《算法导论》第二版第7章(快速排序)的思考题中被提到,是由Howard、Fine等教授提出的所谓“漂亮的”排序算法。

实现逻辑:

同样也是从wikipedia copy来的

1、如果最后一个值小于第一个值,则交换这两个数
2、如果当前集合元素数量大于等于3:
3、使用臭皮匠排序前2/3的元素
4、使用臭皮匠排序后2/3的元素
5、再次使用臭皮匠排序前2/3的元素

 

代码

使用的是java

package hark.sort.exchangesort;/** 臭皮匠排序*/
public class StoogeSort {public static void main(String[] args) {int[] arrayData = { 2, 3, 4, 5, 6, 7, 8, 9, 1 };StoogeSortMethod(arrayData, 0, arrayData.length - 1);for (int integer : arrayData) {System.out.print(integer);System.out.print(" ");}}public static void StoogeSortMethod(int[] arrayData, int beginIndex,int endIndex) {if (endIndex - beginIndex + 1 >= 3) {int t = (endIndex - beginIndex + 1) / 3;StoogeSortMethod(arrayData, beginIndex, endIndex - t);StoogeSortMethod(arrayData, beginIndex + t, endIndex);StoogeSortMethod(arrayData, beginIndex, endIndex - t);} else if (arrayData[beginIndex] > arrayData[endIndex]) {arrayData[beginIndex] = arrayData[beginIndex] + arrayData[endIndex];arrayData[endIndex] = arrayData[beginIndex] - arrayData[endIndex];arrayData[beginIndex] = arrayData[beginIndex] - arrayData[endIndex];}}
}

  

 

参考

.html

/%E8%87%AD%E7%9A%AE%E5%8C%A0%E6%8E%92%E5%BA%8F

转载于:.html

更多推荐

Hark的数据结构与算法练习之臭皮匠排序

本文发布于:2024-03-08 21:11:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1722383.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:皮匠   数据结构   算法   Hark

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!