当前位置: 首页 > news >正文

在线生成网站做网站的公司主要做shm

在线生成网站,做网站的公司主要做shm,移动应用开发代码,广州景点排行榜前十名棋牌类游戏算法–牌分类毫无疑问#xff0c;Quicksort被认为是本世纪最重要的算法之一#xff0c;并且它是许多语言的事实上的系统排序#xff0c;包括Java中的Arrays.sort 。 那么#xff0c;quicksort有何新功能#xff1f; 好吧#xff0c;除了我刚刚#xff08;在J… 棋牌类游戏算法–牌分类 毫无疑问Quicksort被认为是本世纪最重要的算法之一并且它是许多语言的事实上的系统排序包括Java中的Arrays.sort 。 那么quicksort有何新功能 好吧除了我刚刚在Java 7发行了2年之久之后才想到 Arrays.sort的Quicksort实现已被称为Dual-Pivot QuickSort的变体替代。 出于这个原因这个线程很棒而且乔恩·本特利和约书亚·布洛赫真的很谦虚。 接下来我要做什么 就像其他所有人一样我也想实现它并针对约1000万个整数随机和重复进行一些基准测试。 奇怪的是我发现以下结果 随机数据 快速排序基本1222毫秒 快速排序3种方式1295毫秒严重 双轴快速排序1066毫秒 重复数据 快速排序基础378毫秒 快速排序3种方式15毫秒 快速分类双枢轴6毫秒 愚蠢的问题1 恐怕在三向分区的实现中缺少一些东西。 在针对随机输入1000万个的数字进行的多次运行中我可以看到单个枢轴始终表现更好尽管对于1000万个数字其差异小于100毫秒。 我知道直到现在将三路Quicksort设置为默认Quicksort的全部目的是它不会在重复键上提供0n 2性能-当我对重复输入运行它时这是非常明显的。 但是为了处理重复的数据三路方式会付出一点代价吗 还是我的实现不好 愚蠢的问题2 我的Dual Pivot实现下面的链接不能很好地处理重复项。 它需要永远的甜蜜0n 2才能执行。 有避免这种情况的好方法吗 谈到Arrays.sort实现我发现在完成实际排序之前就消除了升序和重复项。 因此作为一个肮脏的解决方法如果枢轴相等则我快进lowerIndex直到它与pivot2不同。 这是公平的实施吗 else if (pivot1pivot2){while (pivot1pivot2 lowIndexhighIndex){lowIndex;pivot1input[lowIndex];}} 而已。 那就是我所做的一切 我总是发现算法的跟踪很有趣但是由于Dual Pivot quicksort中的变量数量众多我的眼睛在调试时发现它不知所措。 因此我还继续创建了启用跟踪的实现针对所有3种实现以便可以看到变量指针当前所在的位置。 这些启用了跟踪的类仅覆盖指针在数组值下方的位置。 我希望您发现这些课程有用。 例如。 用于Dual Pivot迭代 整个项目以及DSA的一些la脚实现可在github 此处获得 。 仅在这里可以找到 quicksort类。 这是我对SinglePivotHoare3waySedgewick和新Dual-PivotYaroslavskiy的实现 单枢轴 package basics.sorting.quick;import static basics.sorting.utils.SortUtils.exchange; import static basics.sorting.utils.SortUtils.less; import basics.shuffle.KnuthShuffle;public class QuickSortBasic {public void sort (int[] input){//KnuthShuffle.shuffle(input);sort (input, 0, input.length-1);}private void sort(int[] input, int lowIndex, int highIndex) {if (highIndexlowIndex){return;}int partIndexpartition (input, lowIndex, highIndex);sort (input, lowIndex, partIndex-1);sort (input, partIndex1, highIndex);}private int partition(int[] input, int lowIndex, int highIndex) {int ilowIndex;int pivotIndexlowIndex;int jhighIndex1;while (true){while (less(input[i], input[pivotIndex])){if (ihighIndex) break;}while (less (input[pivotIndex], input[--j])){if (jlowIndex) break;}if (ij) break;exchange(input, i, j);}exchange(input, pivotIndex, j);return j;}} 3路 package basics.sorting.quick;import static basics.shuffle.KnuthShuffle.shuffle; import static basics.sorting.utils.SortUtils.exchange; import static basics.sorting.utils.SortUtils.less;public class QuickSort3Way {public void sort (int[] input){//inputshuffle(input);sort (input, 0, input.length-1);}public void sort(int[] input, int lowIndex, int highIndex) {if (highIndexlowIndex) return;int ltlowIndex;int gthighIndex;int ilowIndex1;int pivotIndexlowIndex;int pivotValueinput[pivotIndex];while (igt){if (less(input[i],pivotValue)){exchange(input, i, lt);}else if (less (pivotValue, input[i])){exchange(input, i, gt--);}else{i;}}sort (input, lowIndex, lt-1);sort (input, gt1, highIndex);}} 双枢轴 package basics.sorting.quick;import static basics.shuffle.KnuthShuffle.shuffle; import static basics.sorting.utils.SortUtils.exchange; import static basics.sorting.utils.SortUtils.less;public class QuickSortDualPivot {public void sort (int[] input){//inputshuffle(input);sort (input, 0, input.length-1);}private void sort(int[] input, int lowIndex, int highIndex) {if (highIndexlowIndex) return;int pivot1input[lowIndex];int pivot2input[highIndex];if (pivot1pivot2){exchange(input, lowIndex, highIndex);pivot1input[lowIndex];pivot2input[highIndex];//sort(input, lowIndex, highIndex);}else if (pivot1pivot2){while (pivot1pivot2 lowIndexhighIndex){lowIndex;pivot1input[lowIndex];}}int ilowIndex1;int ltlowIndex1;int gthighIndex-1;while (igt){if (less(input[i], pivot1)){exchange(input, i, lt);}else if (less(pivot2, input[i])){exchange(input, i, gt--);}else{i;}}exchange(input, lowIndex, --lt);exchange(input, highIndex, gt);sort(input, lowIndex, lt-1);sort (input, lt1, gt-1);sort(input, gt1, highIndex);}} 参考 Resort.me博客上的快速排序–我们JCG合作伙伴 Arun Manivannan的3向和双向旋转 。 翻译自: https://www.javacodegeeks.com/2013/06/quicksorting-3-way-and-dual-pivot.html棋牌类游戏算法–牌分类
http://wiki.neutronadmin.com/news/392622/

相关文章:

  • 电子商务网站用什么语言开发网站搭建的注意事项
  • 沈阳做网站哪家质量好价格低网站建设合同合同期限
  • 建网站 广州中国在建工程信息网
  • google企业网站seo石家庄专业商城网站制作
  • 建设教育局网站硬件价格需要多少钱郑州做招商的网站
  • 移动 网站模板做门户网站需要具备什么
  • 网站pv uv统计sqlite开发网站
  • 企业网站推广技巧php网站开发工程师职责
  • 翻译建设网站山东seo多少钱
  • 网站外包一般多少钱啊永定门网站建设
  • 自己做网站销售中山三水网站建设
  • 网站建设阿里广西建设银行行号查询网站
  • 哪个网站做ppt能赚钱广州网站建设有哪些公司
  • 网站建设的目标是什么?提供了哪些栏目?南昌网站建设联系方式
  • 网站建栏目建那些成都网站设计费用
  • 协会网站开发免费注册个人网站官网
  • 汽车用品网站建设策划书appstore下载免费软件
  • 做网站需要后台吗做网站需要什么认证
  • 网页设计软件列表点击查看代码pc网站优化排名
  • 上海工商网站官网专题网站怎么做
  • 做a小视频免费观看网站望京 网站建设
  • 外国网站服务器wordpress怎么保存图片
  • 网页设计网站怎么放到域名里你好多莉wordpress
  • 步步高学习机进网站怎么做已经备案的域名做电影网站
  • 没有网站做淘宝客深圳建网站多少钱
  • html 类似淘宝购物网站上加载时获取属性并可多选过滤 代码网络营销就是网站营销
  • 图片模板网站安全管理平台
  • 给别人做网站多少钱WordPress无法下单
  • 长安网站建设公司公司简介模板word
  • 官网指的是什么网站建设网站有哪些方法