字符串排序 您所在的位置:网站首页 java给字符串排序 字符串排序

字符串排序

#字符串排序| 来源: 网络整理| 查看: 265

本周我们分享一个获取全排列的算法。这道题当时也是花了蛮久的时间才跟着题解写出来!小白经历了这道题目的“煎熬”之后,就为大家保驾护航,一起轻松拿下此题吧!

我们先来介绍一下此次运用的这道题目的核心思想:字典序排列

字典序

算法示意图

我们先把算法图摆出来给大家参考一下!

整个算法的核心就是按照我们的整体的从小到大的顺序来进行全排列,比如:123-->132-->213-->231-->312-->321

完成这段全排列流程的步骤主要有以下几步

需要对给定的序列进行排序,得到一个有序数组(一般认为是从小到大的)从右向左开始寻找一个第一个A[i]A[j]关系的元素,交换A[i]和A[j]。对A[i]之后的元素进行翻转(也就是从小到大排序),得到一个新的排列。重复2~4当无法再进行找到满足A[i]=0;left--){ if(ch[left] < ch[left +1]){ break; } } //判断是否已经越界 if(left == -1){ return "stop"; } //从右边寻找大于left的最小元素 int right = len - 1; for(;right > left ; right--){ if(ch[left] < ch[right]){ break; } } //交换left和right位置 char temp = ch[left]; ch[left] = ch[right]; ch[right] = temp; //翻转left后面的字符串 for(int a = left+1,b=len-1;a < b ;a++,b--){ temp = ch[a]; ch[a] = ch[b]; ch[b] = temp; } return new String(ch); } }

本文分享自微信公众号 - Java小白成长之路(Java_xiaobai),作者:鹏程万里

原文出处及转载信息见文内详细说明,如有侵权,请联系 [email protected] 删除。

原始发表时间:2020-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有