插入排序——Java实现 一、排序思想 从数组第一个元素开始(0下标),该元素可以认为已经被排序; 取出待排序列中第一个元素,然后从“有序”序列中,从后往前扫描; 如果该元素(有序序列)大于待插入元素(待排序列),将该元素后移一个位置; 重复步骤3,直到找到“有序序列”中某一元素小于或等于“待插入元素”的位置...
1.InsertionSort类 InsertSort是抽象类,需要实例化时需要实现publicabstractintelemCompare(T a, T b)方法,此方法描述了比较类型T两个实例大小的策略。调用srot方法即可对ArrayList<T>进行插入排序。 importjava.util.ArrayList; /** * 作者原创,引用请注明出处 * @author ChameleonChen */publicabstractclassInsertio...
public static void main(String[] args) { int[] array = {12, 11, 13, 5, 6}; System.out.println("排序前的数组:"); printArray(array); insertionSort(array); System.out.println("排序后的数组:"); printArray(array); } // 插入排序算法实现 public static void insertionSort(int[] array) ...
3.3、代码实现 package com.boss.algorithm; import java.util.Arrays; /** * 插入排序(Insertion Sort) */ public class InsertionSort { public static void main(String[] args) { int[] arr={3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; System.out.println("交换之前:" + Arrays.toString...
排序完成。 使用插入排序为一列数字进行排序的过程示意图(来自维基百科): 插入排序算法示意图(来自维基百科): 代码实现 从上面可以看到,算法思路非常简单,但是代码就不那么简单易写了。算法本身是没有问题的,之所以不易写我觉得是由于编程语言的问题。这里我们使用 Java 来实现,那就拿 Java 来讲。 在上述思...
插入排序只能一个一个往后面移动,希尔排序可以跳着步长移动,小的数很快就会到达最前面。 人话:1,1+x,1+2x,1+3x ···一组,然后组内使用直接插入排序;第二组就是 2,2+x,··· 一轮完成后,就减小x的大小,直到x=1; 代码实现: publicstaticint...
插入排序原理:通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。 插入排序很类似排纸牌,从牌桌上抓牌排在手里,手里的牌始终是有序的,每次都把牌放在相应的位置,这就是插入排序。 举例说明:{1,9,7,2,3,6,4,5} 假设第一位的数字为有序(只有它自己一个,当然有序),...
1. 定义插入排序的方法 首先,我们需要定义一个方法来实现插入排序。这个方法将接收一个整数数组作为参数,并返回排序后的数组。 java public int[] insertionSort(int[] array) { // 插入排序的具体实现 } 2. 在方法中创建一个循环,用于遍历数组 我们需要从数组的第二个元素开始遍历(因为第一个元素默认是已排...
1 新建java类,并新建个数组,如int[] array = {20,15,30,12,3} 2 从第二个数开始作为要插入的数,依次进行遍历,比较确定插入位置,即手里的第一张牌先放着,后抓来的第二张牌与第一张牌进行比较,确定插入位置,第三张牌与前二张牌进行比较,确认插入位置,以此类推 3 取出要插入的数,即我们新抓...
1 我们首先来描述插入排序的执行过程。定义指针指向数组第二个元素,每轮循环中,依次比较指针左侧的值与指针指向的值的大小,并将该值移动到对应位置。本轮循环结束后让数组指针向后移动一位。这样,每一次循环结束后,指针指向的左侧数组就已经排好序。2 根据上面的描述,我们使用伪代码更清晰地展示算法的执行过程...