对字符串中字符进行自然顺序排序(基本类型排序)-冒泡算法实现

我下海创业啦,从事个人网络创业领域,有兴趣伙伴可以了解一下:创业博客www.gaoyuip.com

字符串本质就是字符数组,所以对字符串的排序也就是对字符数组的排序(有选择排序、冒泡排序、快速排序等常用算法);

  • 思路:
    • 字符串转换成字符数组
    • 数组排序
      • 用的冒泡排序,
        • 注意点:
          1. 一层循环下来会将最小的元素转移到末尾,即最小的元素与其他元素都进行了一次比较,所以还需要外层循环控制交换次数(length-1);
          而不是所有的元素大小,所以还需要外层嵌套
          2. 十进制ASCII码,对应的字母位越小,十进制数越大,与自然位相驳;
    • 字符数组转换成字符串

例题加详细的注释:

Copy
@Test public void Sorting(){ String str = "dkgkfjg"; //1、字符串转换成字符串数组 char[] ch = str.toCharArray(); //2、对数组进行排序 //方式一:调用静态方法Arrays.sort() //Arrays.sort(ch); /*方式二:冒泡排序: * */ //外层循环:控制要交换的轮数,最多要交换length-1次 for (int j = 0; j < ch.length-1; j++) { //创建一个开关,且每次循环开始都打开开关 boolean loopFlag = true; //内层循环:对前后两个数进行比较、交换 for (int i = 0; i < ch.length - 1 - i; i++) {//-i是已经交换了的元素 if(ch[i] > ch[i+1]){//这样比较的时其对应的十进制ASCII码,对应的字母位越小,十进制数越大,所以反着来 char c = ch[i]; ch[i] = ch[i+1]; ch[i+1] = c; //只要本层循环发生过交换,说明还没有比较完,关闭开关 loopFlag = false; } //如全部比较完成,无需等待循环条件满足再跳出外层循环,提高了运行效率 if(loopFlag){ break; } } } //3、将排序后的数组转换成字符串 String strSort = String.valueOf(ch); System.out.println("转换后的数组:"+strSort); }
posted @   "无问西东"  阅读(1990)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
网络创业项目 123how出海导航
点击右上角即可分享
微信分享提示