如何用Java编写直接插入排序算法?

更新于
2026-10-04 10:48:24
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计705个文字,预计阅读时间需要3分钟。

将排序插入方法模块化,提供详细说明:

直接插入排序:- 原理:选择一个数作为有序序列的基准,将其余元素依次插入到已排序序列中适当位置。- 步骤: 1. 选择第一个数作为基准,假设为有序序列。 2. 从第二个数开始,依次与基准比较。 3. 如果当前数小于基准,将其插入到基准之前的有序序列中。 4. 重复步骤2和3,直到所有数都插入完成。

插入过程:- 将要插入的数与有序序列中的数进行比较。- 如果当前数小于有序序列中的数,将其插入到当前位置。- 否则,继续比较下一位置,直到找到插入位置。

一个方法插入排序的方法块,有详细的说明

/**直接插入排序:首先选定一个数作为有序序列,然后把其它无序数一个一个数插入到这个有序序列中。 *插入过程:将要插入的这个数从有序序列的最后一个数开始比较,若小于,则被比较的这个数后移1;再和倒数第二个比较....直至插入后为有序序列 *@param base int[]类型,待排序数组 *@return base 返回排好序的数组 */ public int[] directInsertSort(int[] order){ //首先判断如果数组长度小于等于1,则不用进行排序,直接返回 if(order.length <= 1){ return order; } /* 首先默认数组第一个数是有序的,即下标为0 算法说明,首先第一个for代表待插入数据,即无序数据,初始i为1,即数组下标为1的元素开始进行插入。 第二个for代表当前的有序数据,初始j的值即是当前有序数组的最大的下标(因为需要从后往前插)。 过程:首先insertIndexOf动态的记录待插入数的当前位置,初始值是i的值,然后依次与有序数组从后往前比, 若比有序数组下标为j的数小,则和它交换位置,并且把下标j赋给insertIndexOf。这样就相当于有序数 组下标为j的数向后移了一位,然后它插入。 以此循环,直到遇到比它小的,那么它的位置就不用动了 ,然后直接进入下一个数进行插入。

阅读全文

本文共计705个文字,预计阅读时间需要3分钟。

将排序插入方法模块化,提供详细说明:

直接插入排序:- 原理:选择一个数作为有序序列的基准,将其余元素依次插入到已排序序列中适当位置。- 步骤: 1. 选择第一个数作为基准,假设为有序序列。 2. 从第二个数开始,依次与基准比较。 3. 如果当前数小于基准,将其插入到基准之前的有序序列中。 4. 重复步骤2和3,直到所有数都插入完成。

插入过程:- 将要插入的数与有序序列中的数进行比较。- 如果当前数小于有序序列中的数,将其插入到当前位置。- 否则,继续比较下一位置,直到找到插入位置。

一个方法插入排序的方法块,有详细的说明

/**直接插入排序:首先选定一个数作为有序序列,然后把其它无序数一个一个数插入到这个有序序列中。 *插入过程:将要插入的这个数从有序序列的最后一个数开始比较,若小于,则被比较的这个数后移1;再和倒数第二个比较....直至插入后为有序序列 *@param base int[]类型,待排序数组 *@return base 返回排好序的数组 */ public int[] directInsertSort(int[] order){ //首先判断如果数组长度小于等于1,则不用进行排序,直接返回 if(order.length <= 1){ return order; } /* 首先默认数组第一个数是有序的,即下标为0 算法说明,首先第一个for代表待插入数据,即无序数据,初始i为1,即数组下标为1的元素开始进行插入。 第二个for代表当前的有序数据,初始j的值即是当前有序数组的最大的下标(因为需要从后往前插)。 过程:首先insertIndexOf动态的记录待插入数的当前位置,初始值是i的值,然后依次与有序数组从后往前比, 若比有序数组下标为j的数小,则和它交换位置,并且把下标j赋给insertIndexOf。这样就相当于有序数 组下标为j的数向后移了一位,然后它插入。 以此循环,直到遇到比它小的,那么它的位置就不用动了 ,然后直接进入下一个数进行插入。

阅读全文