java层级算法(层次分析法java代码)

  • 1、java十大算法
  • 2、java算法有哪些分别
  • 3、java层次遍历算法思路?

算法一:快速排序算法

快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。

快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。

算法步骤:

1 从数列中挑出一个元素,称为 “基准”(pivot),

2 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。

3 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。虽然一直递归下去,但是这个算法总会退出,因为在每次的迭代(iteration)中,它至少会把一个元素摆到它最后的位置去。

算法二:堆排序算法

堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。

堆排序的平均时间复杂度为Ο(nlogn) 。

算法步骤:

创建一个堆H[0..n-1]

把堆首(最大值)和堆尾互换

3. 把堆的尺寸缩小1,并调用shift_down(0),目的是把新的数组顶端数据调整到相应位置

4. 重复步骤2,直到堆的尺寸为1

算法三:归并排序

归并排序(Merge sort,台湾译作:合并排序)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

算法步骤:

1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列

2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置

3. 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置

4. 重复步骤3直到某一指针达到序列尾

5. 将另一序列剩下的所有元素

您好:

java中的算法,常见的有:递归、迭代、查找、排序(包含冒泡排序、选择排序、插入排序、快速排序四种) 等,算法有很多,一般数据结构中涉及到的都可以用java语言实现。

举几个例子:

1.递归的例子:

2.排序的例子:

不一一举例,仅供参考!

找个例子看一下就有了。比如递归前序遍历二叉树,即先根遍历。先遍历根节点,之后向下又是一个跟节点,在遍历做节点,在遍历右节点,依次下去,知道没有右节点结束。在遍历右边的部分,根节点,左节点,右节点,知道没有右节点是为止。至此遍历结束。书上有图一看就知道了。其他的遍历按照遍历算法一样。建议看下数据结构的遍历,讲的很详细。

原创文章,作者:简单一点,如若转载,请注明出处:https://www.506064.com/n/127191.html

汽车小知识 小米SU7 今日油价 油耗计算器 电耗计算器 购置税计算器 贷款计算器 保险计算器 交通违章代码 体育新闻
(0)
简单一点的头像简单一点
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相关推荐

  • java字符串拆分,java string拆分

    本文目录一览: 1、java如何拆分字符串 2、java分割字符串 3、java怎么由一个字符分割字符串 java如何拆分字符串 java拆分字符串使用string类的spilt方…

    编程 2024-10-04
  • Unity修改器详解

    作为一款强大的跨平台游戏引擎,Unity在游戏开发领域中得到广泛应用。凭借着优秀的可视化编辑器,Unity不仅为开发者提供快速建立游戏世界的工具,同时也提供一系列强大的游戏编辑器,…

    编程 2024-10-04
  • php图片盗链的简单介绍

    本文目录一览: 1、php怎么防止图片盗链 2、如何用PHP盗链一个图片地址? 3、php图片防盗链 怎么破解 4、PHP防止图片盗用(盗链)的方法小结 php怎么防止图片盗链 原…

    编程 2024-11-08
  • solidworks材料库位置,solidworks材料库在哪

    本文目录一览: 1、我下了个solidworks材质库,放solidworks哪个文件夹 2、我下了个solidworks材质库,放solidworks哪个文件夹,大虾来。怎么办?…

    编程 2024-10-03
  • 基于python的炒股软件,用Python炒股

    本文目录一览: 1、炒股有哪些软件 2、模拟炒股什么软件比较好 3、怎样用 Python 写一个股票自动交易的程序 4、如何用Python和机器学习炒股赚钱 5、怎样用 Pytho…

    编程 2024-10-03
  • java的,java的switch用法

    本文目录一览: 1、java的特点有哪些? 2、Java的概念和定义是什么? 3、Java的特点有哪些? 4、JAVA的主要应用领域是什么? java的特点有哪些? Java语言是…

    编程 2024-10-14
  • jsint详解

    在JavaScript编程中,我们经常需要处理大量的数字操作,但是JavaScript中的数字操作并不像其他语言那样简单。为了解决这一问题,jsint应运而生。本文将从多个方面介绍…

    编程 2024-11-08
  • 如何使用dropout提高用户体验?

    一、什么是dropout? Dropout是一个让神经网络模型更加稳定、防止过拟合的技术。在训练过程中,随机地将一些神经元的输出设为0,从而防止神经元之间出现过多的依赖关系。 通常…

    编程 2024-10-03
  • Python读取字典:轻松处理和管理大量数据

    一、Python字典基础 Python字典是一种无序的键值对集合。一个字典用花括号 {} 表示,其中每个键值对用冒号 : 分隔,每个键和其对应值用逗号隔开。例如: d = {‘ap…

    编程 2024-10-04
  • 如何在Java中创建线程

    Java是一种支持多线程的编程语言,因此它具有独特的优势。实现多线程使得程序可以在更短的时间内完成任务并节省计算机的资源,提高程序的运行效率。线程是一种轻量级的进程,它可以在同一时…

    编程 2024-10-04

发表回复

登录后才能评论