请问两种排序算法有什么区别? 20
传统堆排序是把数据构造成完全二叉树然后逐层调整以满足堆性质,时间复杂度为O(nlogn),但是将数据全部压入优先队列再依次弹出一样是O(nlogn)的时间复杂度,请问这两...
传统堆排序是把数据构造成完全二叉树然后逐层调整以满足堆性质,时间复杂度为O(nlogn),但是将数据全部压入优先队列再依次弹出一样是O(nlogn)的时间复杂度,请问这两种方法在效率、难易程度等方面上有什么区别,如果要二选一哪个更适合?
展开
1个回答
展开全部
在计算机科学与数学中,排序算法(Sorting algorithm)是一种能将一串资料依照特定排序方式进行排列的一种算法。最常用到的排序方式是数值顺序以及字典顺序。
有效的排序算法在一些算法(例如搜寻算法与合并算法)中是重要的, 如此这些算法才能得到正确解答。
排序算法也用在处理文字资料以及产生人类可读的输出结果。
基本上,排序算法的输出必须遵守下列两个原则:一、输出结果为递增序列(递增是针对所需的排序顺序而言);二、输出结果是原输入的一种排列、或是重组; 虽然排序算法是一个简单的问题,但是从计算机科学发展以来,在此问题上已经有大量的研究。 更多的新算法仍在不断的被发明。
查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。 所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。
一般在面试中最常考的是快速排序和冒泡排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。除此之外,还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。
常见的几种算法:冒泡算法、选择排序、插入排序、希尔排序、归并排序、快速排序
算法的特点:
1.有限性:一个算法必须保证执行有限步之后结束。
2.确切性: 一个算法的每一步骤必须有确切的定义。
3.输入:一个算法有零个或多个输入,以刻画运算对象的初始情况,所谓零个输入是指算法本身给定了初始条件。
4.输出:一个算法有一个或多个输出。没有输出的算法毫无意义。
5.可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。
有效的排序算法在一些算法(例如搜寻算法与合并算法)中是重要的, 如此这些算法才能得到正确解答。
排序算法也用在处理文字资料以及产生人类可读的输出结果。
基本上,排序算法的输出必须遵守下列两个原则:一、输出结果为递增序列(递增是针对所需的排序顺序而言);二、输出结果是原输入的一种排列、或是重组; 虽然排序算法是一个简单的问题,但是从计算机科学发展以来,在此问题上已经有大量的研究。 更多的新算法仍在不断的被发明。
查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。 所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。
一般在面试中最常考的是快速排序和冒泡排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。除此之外,还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。
常见的几种算法:冒泡算法、选择排序、插入排序、希尔排序、归并排序、快速排序
算法的特点:
1.有限性:一个算法必须保证执行有限步之后结束。
2.确切性: 一个算法的每一步骤必须有确切的定义。
3.输入:一个算法有零个或多个输入,以刻画运算对象的初始情况,所谓零个输入是指算法本身给定了初始条件。
4.输出:一个算法有一个或多个输出。没有输出的算法毫无意义。
5.可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。
追问
所以请问两种方法有何本质区别呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
北京埃德思远电气技术咨询有限公司
2023-07-25 广告
2023-07-25 广告
潮流计算是一种用于分析和计算电力系统中有功功率、无功功率、电压和电流分布的经典方法。它是在给定电力系统网络拓扑、元件参数和发电、负荷参量条件下,计算电力系统中各节点的有功功率、无功功率、电压和电流的实际运行情况。潮流计算主要用于研究电力系统...
点击进入详情页
本回答由北京埃德思远电气技术咨询有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询