2019独角兽企业重金招聘Python工程师标准>>>

表插入排序

随机产生一组数,通过链表进行排序,然后在复制到数组中,提高效率

class Link
{public long  ddata;public Link next;public Link(long dd){ddata = dd;}public void displayLink(){System.out.println(ddata + " ");}
}
class SortedList
{private Link first;public SortedList(){first = null;}public SortedList(Link[] linkArr){first = null;for(int j=0;j<linkArr.length;j++)insert(linkArr[j]);}public boolean Empty(){return (first == null);}public void insert(Link k){Link previous = null;Link current = first;while(current !=null&&k.ddata>current.ddata){previous = current;current = current.next;}if(previous == null)first = k;elseprevious.next =k;k.next = current;}public Link remove(){Link temp = first;first = first.next;return temp;}public void displayList(){System.out.println("link");Link currrent = first;while(currrent != null){currrent.displayLink();currrent = currrent.next;}System.out.println(" ");}
}
class ListInsertionApp
{public static void main(String[] args){int size = 10;Link[] linkArray = new Link[size];for(int j=0;j<size;j++){int n = (int)(java.lang.Math.random()*99);Link newLink = new Link(n);linkArray[j] = newLink;}System.out.println("unsorted");for(int j=0;j<size;j++){System.out.print(linkArray[j].ddata+" ");System.out.println(" ");SortedList theSortedList = new SortedList(linkArray);for(int i=0;i<size;i++)linkArray[i] = theSortedList.remove();System.out.print("sorted");for(int x=0;x<size;x++)System.out.print(linkArray[x].ddata+" ");System.out.println(" ");}}
}

双向链表:允许向前遍历也允许向后遍历

缺点:每次插入和删除一个链结点的时候,要出来四个链结点的引用,而不是两个。

一下是插入功能,分为从链表头插入和链表尾插入

class Link
{public long ddata;public Link next;public Link previous;public Link(long d){ddata = d;}public void displayLink(){System.out.println(ddata + " ");}
}
class DoublyLinkedList
{private Link first;private Link last;public DoublyLinkedList(){first = null;last = null;}public boolean isEmpty(){return first == null;}public void insertFirst(long dd){Link newLink = new Link(dd);if(isEmpty())last = newLink;elsefirst.previous = newLink;newLink.next = first;first = newLink;}public void insertLast(long dd){Link newLink = new Link(dd);if(isEmpty())first = newLink;else{last.next = newLink;newLink.previous = last;            }last = newLink;}
}

转载于:https://my.oschina.net/u/3829307/blog/1922373

数据结构与算法17-表插入排序相关推荐

  1. c语言 静态链表插入排序,数据结构C语言版 表插入排序

    西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...

  2. 数据结构与算法-2-链表的基本操作-查找

    数据结构与算法-2-链表的基本操作-查找(c语言) 本文是单链表的C语言实现方法,包括单链表的创建.插入.删除.修改.查找等基本操作. 链表结点的类型定义 /*链式存储结构的头结点*/ typedef ...

  3. 数据结构与算法-4-链表的基本操作-增

    数据结构与算法-4-链表的基本操作-增 注意:以下为顺序存储结构实现 相关的头文件 /*以下为头文件SqList.h是用于定义相关函数的头文件*/ #pragma once #define LIST_ ...

  4. 数据结构与算法 | 线性表 —— 链表

    原文链接:wangwei.one/posts/java-- 链表 定义 逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构 ...

  5. 数据结构于算法—线性表

    目录 前言 线性表基本架构 顺序表 插入 删除 其他操作 链表 基本结构 插入 带头节点与不带头节点 插入尾 删除 其他 代码实现 顺序表 链表 测试与结果 总结 原创公众号:bigsai 文章收藏在 ...

  6. 数据结构与算法 / 跳表

    一.诞生原因 解决链表查询时耗时过长的问题. 二.基本信息 英文全称:Skip List . 链表 + 多级索引(链表) = 跳表 三.原理说明 顾名思义,跳表的查询是在多个链表之间跳跃查询的,其路线 ...

  7. Java版数据结构与算法——线性表

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

  8. 数据结构与算法——17. 散列(哈希)与完美散列函数

    文章目录 一.散列(Hashing)的概念 举例说明 二.完美散列函数 1. 数据的一致性校验 2. 完美散列函数用于数据的一致性校验 一.散列(Hashing)的概念 在查找算法中,如果数据项之间是 ...

  9. 数据结构和算法目录表

    http://www.cnblogs.com/skywang12345/p/3603935.html c/c++/java什么的太麻烦.我用JavaScript实现了一部分. 1. suanfa.js ...

  10. 高级数据结构与算法 | 跳跃表(Skip List)

    文章目录 区间查询时链表与顺序表的局限 跳表=链表+索引 跳表的原理 晋升 插入 删除 跳表的实现 跳表VS红黑树 区间查询时链表与顺序表的局限 假设有这样一个情景, 此时需要设计一个拍卖系统,对于商 ...

最新文章

  1. IDA逆向linux内核导入kallsyms
  2. 使用Python批量处理工作簿和工作表
  3. nyoj--86--找球号(一)(hashset二分)
  4. mysql插入图片数据
  5. vscode 使用 ssh 登录
  6. 网络安全管理实践(第2版)
  7. vs qt 在linux运行,QT安装以及使用(QT支持linux和windows,也支持C/C++代码的编译运行,比vs简洁多)...
  8. 程序员面试金典——7.5平分的直线
  9. 《疯狂Java讲义》(十八)---- JAR文件
  10. 组态王软件自动邮件EMAIL发送
  11. 同态加密(CKKS)中的重线性化(Relinearization)
  12. WPF之NPOIE导出xcel
  13. 佐切的第四天学习分享
  14. 秒杀系统流量削峰这事应该怎么做?为什么要削峰呢?
  15. 【MM小贴士】SAP 采购申请与采购订单的匹配关系
  16. 浅析漫谈EOS之带宽
  17. HDLBits 系列(8)——Sequential Logic(Finite State Machines(一))
  18. 使用html制作个人主页
  19. 【Python爬虫】爬取云班课资源,活动
  20. 2022修复版PHP活动现场大屏幕互动系统源码 带微信上墙+3D签到投票抽奖+互动游戏+红包等功能

热门文章

  1. boost::hana::reverse_fold用法的测试程序
  2. boost::geometry::concatenate_iterator用法的测试程序
  3. ITK:图像重新取样
  4. DCMTK:xmlParser的测试程序
  5. VTK:IO之ReadPLY
  6. 将C ++类型的属性公开给QML
  7. Qt Creator使用CVS
  8. c++ vector方法
  9. C语言SIX/NINE问题
  10. C语言三种常见排序算法