美文网首页
直接插入排序(实现从小到大和从大到下的排序)

直接插入排序(实现从小到大和从大到下的排序)

作者: 小小飞的救赎 | 来源:发表于2018-12-14 15:44 被阅读0次

实现直接插入排序的方法类

package com.hcc.util;

/**
 * 直接插入排序
 * @author hcc
 *
 */
public class DirectInsertSort {
    
    /**
     * 从小到大排序
     * @param arr
     * @param length
     */
    public static void sortingMinToMax(int[] arr,int length) {
        for(int i = 1;i < length;i++){
            int j;
            int temp = arr[i];
            for(j=i-1;j >=0 && arr[j] > temp;j--) {
                arr[j+1] = arr[j];
            }
            //因为上面循环中是j--  所以现在的j为-1  所以要加1
            arr[j+1] = temp;
        }
    }
        
        /**
     * 从大到小排序
     * @param arr
     * @param length
     */
    public static void sortingMaxToMin(int[] arr,int length) {
        for(int i=1;i < length;i++) {
            int temp = arr[i];
            int j;
            for(j = i-1;j >= 0 && arr[j] < temp;j--) {
                arr[j+1] = arr[j];
            }
            arr[j+1] = temp;
        }
    }
}

测试类

public class Test {
    public static void main(String[] args) {

        int[] arr = {69,65,70,90,37,92,6,28,54,20};
        System.out.println("原始数据:");
        printSortData(arr);
        System.out.println();
        System.out.println("直接插入排序:");
        directInsertSortTest(arr);      
    }
    
    /**
     * 直接插入排序测试方法
     * @param arr
     */
    public static void directInsertSortTest(int[] arr) {
        DirectInsertSort.sortingMinToMax(arr, arr.length);
        printSortData(arr);
    }
    
    /**
     * 打印输出方法
     * @param arr
     */
    public static void printSortData(int [] arr) {
        int arrLength = arr.length;
        for(int i = 0;i < arrLength;i++) {
            System.out.print(arr[i]+" ");
        }
    }

}

相关文章

  • 数据结构课程 第十四周 排序

    基本概念和排序方法概述 这里只讲从小到大! 存储结构: 插入排序 基本思想 直接插入排序 折半插入排序 希尔排序 ...

  • 直接插入排序(实现从小到大和从大到下的排序)

    实现直接插入排序的方法类 测试类

  • 常见排序算法(1)一一插入排序

    插入排序有2种,分别是直接插入排序和希尔排序。 1.直接插入排序:从还没排序的数组里取出一个数,插入到已排序的数组...

  • 数组排序

    顺序上分为两种:从小到大的排序;从大到小的排序; 方法上分为四种:冒泡排序、快速排序、选择排序、插入排序 (1)冒...

  • 常用算法

    插入排序 包括直接插入排序和希尔插入排序 直接插入排序 将一个记录插入到已经排序好的有序表中。 sorted数组的...

  • 常用排序算法

    目录 冒泡排序 选择排序 插入排序 希尔排序 快速排序 归并排序 堆排序 致谢 1. 冒泡排序 C实现,从小到大 ...

  • 希尔排序算法

    前言 当待插入元素是一个很小(当需求是从小到大排序时,从大到小排序时此处为很大)直接插入排序需要移动较多次数,性能...

  • Swift算法俱乐部中文版 -- 插入排序

    目标:从小到大(或从大到小)对数组进行排序。 给你一组数组,将他们排序。插入排序算法的步骤如下: 把未排序的数字放...

  • 基础排序算法

    插入排序从空集合开始,不断把记录插入到合适位置的排序方法 交换排序交换元素的位置进行排序 插入排序 直接插入排序 ...

  • Objective-C实现直接插入排序

    一,直接插入排序简介 直接插入排序是一种较为简单的排序方法,其实现思想是每次将一个未排序的元素插入到已经排好序的元...

网友评论

      本文标题:直接插入排序(实现从小到大和从大到下的排序)

      本文链接:https://www.haomeiwen.com/subject/nleghqtx.html