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

动态数组排序实例

要实现动态数组排序,需要将数据采用链表的形式存储。举例如下:

package com.cn.datastruct;
import java.io.IOException;
import java.util.Scanner;
//动态数组排序实例
public class DynamicArray {
    //链表结构
    static class LinkList{
        char data;              //数据域
        LinkList next;          //指针域
    }
    //创建链表
    static LinkList CreatLinkList(char ch){
        LinkList list = null;
        list = new LinkList();
        list.data = ch;
        list.next = null;
        return list;
    }
    //插入结点
    static void insertList(LinkList list,char e){
        LinkList p = new LinkList();
        p.data=e;
        if(list==null){
            list=p;
            p.next=null;
        }else{
            p.next=list.next;
            list.next=p;
        }
    }
    //动态数组排序
    static void dynamicSort(LinkList p){
        LinkList q = p;
        int i,j,k=0;
        char temp;
        while(q!=null){
            k++;
            q=q.next;
        }
        q=p;
        for(i=0;i<k-1;i++){
            for(j=0;j<k-i-1;j++){
                if(q.data>q.next.data){
                    temp=q.data;
                    q.data=q.next.data;
                    q.next.data=temp;
                }
                q=q.next;
            }
            q=p;
        }
    }
    
    
    public static void main(String[] args) throws IOException {
        char[] ch;
        char chc;
        LinkList list,p;
        System.out.println("动态数组排序!");
        System.out.println("请输入一组字符,以回车结束!");
        Scanner input = new Scanner(System.in);
        ch = input.next().toCharArray(); 
        chc = ch[0];         //输入链表的第一个数据
        p=list=CreatLinkList(chc);    //创建一个链表结点
        for(int i=1;i<ch.length;i++){
            insertList(p,ch[i]);
        }
        dynamicSort(list);    //动态数组排序
        System.out.println();
        System.out.println("对该数组排序后,得到的结果如下:");
        while(list!=null){
            System.out.print(list.data+" ");
            list=list.next;
        }
        System.out.println();
    }

}

 

相关文章:

  • Nginx 反向代理、负载均衡与动静分离
  • [裴礼文数学分析中的典型问题与方法习题参考解答]4.4.9
  • 贪心 URAL 1303 Minimal Coverage
  • 使用JS或jQuery模拟鼠标点击a标签事件代码
  • 创建activiti工作流所需23张表
  • Spring Userservice-用户登录,登录数据库密码存储以及防止暴力破解
  • 复习之webview(观看张荣超视频)
  • Android6 Socket通信
  • 给列表项目添加动画
  • R(1)Mac OS 下安装R语言开发环境
  • PHP自动加载__autoload的工作机制
  • UISlide属性
  • 521Today
  • 谷歌浏览器的粗略使用方法
  • 不错的网站
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Codepen 每日精选(2018-3-25)
  • docker容器内的网络抓包
  • fetch 从初识到应用
  • HTML5新特性总结
  • js中的正则表达式入门
  • python大佬养成计划----difflib模块
  • Xmanager 远程桌面 CentOS 7
  • 老板让我十分钟上手nx-admin
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #NOIP 2014# day.1 T2 联合权值
  • (1)常见O(n^2)排序算法解析
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (arch)linux 转换文件编码格式
  • (javascript)再说document.body.scrollTop的使用问题
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)C#调用WebService 基础
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)Unity3DUnity3D在android下调试
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .md即markdown文件的基本常用编写语法
  • .net framework4与其client profile版本的区别
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net语言中的StringBuilder:入门到精通
  • /run/containerd/containerd.sock connect: connection refused
  • :=
  • @Autowired标签与 @Resource标签 的区别
  • @KafkaListener注解详解(一)| 常用参数详解