在一个在java编程中,好好使用合适的java排序算法,它不仅可以提高程序的运行速度,而且可以节省大量的资源,所以使用相应的排序算法来编写代码和程序也非常重要。让我们一起学习吧
java插入排序法以及如何使用知识。Java插入排序
该方法是一种简单的排序算法,其基本思想是将待排序的记录逐一插入到已排序的有序序列中,直到插入所有记录,并获得一个新的有序Java零基础的新手可以这样理解
java插入排序法:
玩纸牌的人通常会一次考虑一张纸牌,并将其插入到他们排名后应该在的位置。如果是“手中的牌”它被认为是数组中自己排名的一部分,“桌子上的牌”被认为是没有排序的部分,这就是一
新的排序方法被称为java插入排序法。
将排序法插入下面java在实现过程中,排序部分放在数组较低的一端,没有排序的值放在数组较高的一端
(见下图)。
将索引中最小的未排序值插入排序序列,该算法需要执行多次。当然,一旦完成,就会增加一个排序值序列。这个过程一直持续到每个未排序的值都插入到数组排序序列中。以下是
java代码描述:
图:
分析插入排序过程:阴影中的值是“手中的”排序过的值。圆圈中的值相继插入手中
。
总共遍历了数组n-一次,每次都插入一个新的未排序值。新插入的值可能不是新的最大或最小值。如果数组最初是无序的,则该值将被插入接近以前已排序的值的中间位置。对于随机数据,插入排序的预期执行时间将是O(n^2 )
,
包括比较和移动数据(大多数比较会导致数据移动)。
如果数组最初是有序的,则应每次进行比较,以确认该值处于正确的位置。所以对每一个n-一次,内循环只执行一次。插入排序的最佳执行时间是O(n),只包括数值比较(数组中没有数据移动)。由于这一特性,当数据接近有序时,通常会使用它
java
插入排序法(想象一下,连续加入新客户一个月后,对电话簿进行排序)。
相反,如果数组在开始时进行反向排序,则必须将其与每个自己的排序值进行比较,以将一个值插入到适当的位置。比较后,较大的值将向右移动,为新的值腾出位置。结果是,O(n^2)每次比较都会导致数据移动,算法的最差运行时间是 O(n^2)。
请注意,这些排序方法中的每一种都使用线性数量数据单元。并非每一种排序方法都能适应这种限制。
以上就是对
java插入排序法的介绍相对简单易懂。我相信你可以通过本文的介绍学习如何使用java插入排序法。我也希望你在编写代码时能练习使用这种插入排序法。熟能生巧,将来会熟练地在代码中使用各种排序算法。