java排序算法有哪些代码(java的算法有哪些)

向傲杰 6 0

我们先来看看冒泡排序的算法是如何定义的:

冒泡算法冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。Java编码实现了解了冒泡排序的基本定义之后,根据其思想我们来根据题主的要求看看如何用Java实现冒泡排序算法,代码如下图:

java排序算法有哪些代码(java的算法有哪些)-第1张图片

基本原理就是如下的逻辑走向:

java排序算法有哪些代码(java的算法有哪些)-第2张图片

执行后输出如下:

java排序算法有哪些代码(java的算法有哪些)-第3张图片

有没有发现什么问题?是不是到了第6次已经完成排序了?后面的是不是就属于浪费了?所以我们需要优化一下,当他的顺序已经排序完毕了就不再进行排序了,优化后的代码如下:

java排序算法有哪些代码(java的算法有哪些)-第4张图片

执行后输出:

java排序算法有哪些代码(java的算法有哪些)-第5张图片

可以看出来只执行了6次排序。

算法复杂度那么冒泡算法的复杂度是怎样的呢?相信大家看到这已经基本上可以算出来了:

时间复杂度:两层循环O(n²);

空间复杂度:还是原来的数组,没有开辟新的内存空间,所以是O(n)。

以上就是冒泡算法Java版的实现方案,大家有什么看法呢?欢迎评论区交流讨论,共同学习~

我是【java架构设计】,关注我,持续为您提供Java领域优质内容!

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~