JAVA排序--[插入排序]

 1 package com.array;
 2
 3 public class Sort_Insert {
 4     /*
 5      * 项目名称:插入排序 ;
 6      * 项目要求:用JAVA对数组进行排序,并运用插入排序算法;
 7      * 作者:Sevck;
 8      */
 9     public void sort(int arr[]) {
10         for (int i = 1; i < arr.length; i++) {
11             int insertval = arr[i];
12             int index = i - 1;
13             while (index >= 0 && insertval < arr[index]) {
14                 // 将arr[index]向后移动
15                 arr[index + 1] = arr[index];
16                 index--;
17             }
18             // 将insertval插入适当位置
19             arr[index + 1] = insertval;
20         }
21         for (int i = 0; i < arr.length; i++) {
22             System.out.print(arr[i] + "  ");// 遍历
23         }
24     }
25
26     public static void main(String[] args) {
27         int arr1[] = { 7, 3, 2, 9, 15, 1, 14 };
28         Sort_Insert a = new Sort_Insert();
29         a.sort(arr1);
30     }
31
32 }
时间: 2024-10-17 03:18:19

JAVA排序--[插入排序]的相关文章

java排序之插入排序(直接插入排序和希尔排序)

上面一片博文探讨了关于的java选择排序(冒泡排序和快速排序)本章将继续探讨java排序之插入排序,插入排序分为直接插入排序和希尔排序两种. 1.直接插入排序思想:在需要排序的一组数据中假设前该数组的前n-1(n >= 2)个数是已经排好序的,现在要把第n个数插入到前面的n-1个数中,使得这n个数也是排好顺序的.如此反复进行,知道n等于需要排序的数组的长度时.就实现了该数组的直接插入排序. 代码如下: /** * * @param a 需要排序的数组 */ public static void

java排序算法(六):直接插入排序

java排序算法(六):直接插入排序 直接插入排序的基本操作就是将待的数据元素按其关键字的大小插入到前面的有序序列中 直接插入排序时间效率并不高,如果在最坏的情况下,所有元素的比较次数的总和为(0+1..n-1)= o(n^2).其他情况下也要考虑移动元素的次数.故时间复杂度是o(n^2) 直接插入空间效率很好,只需要一个缓存数据单元,也就是说空间复杂度是o(1) 直接插入排序是稳定的 直接插入排序在数据以有一定顺序的情况下,效率较好.但如果数据无规则,则需要移动大量的数据.其效率就和冒泡排序和

java之插入排序

//插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始有序表只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表. public static void main(String []args){    int arr[]={23,15,-13,62,5,-23,0,17};      for(int i=1;i

java排序集锦

java实现排序的一些方法,来自:http://www.javaeye.com/topic/548520 1 package sort; 2 3 import java.util.Random; 4 5 /** 6 * 排序测试类 7 * 8 * 排序算法的分类如下: 1.插入排序(直接插入排序.折半插入排序.希尔排序): 2.交换排序(冒泡泡排序.快速排序): 9 * 3.选择排序(直接选择排序.堆排序): 4.归并排序: 5.基数排序. 10 * 11 * 关于排序方法的选择: (1)若n较

算法大神之路----排序(插入排序法)

插入排序法 所谓插入排序法乃是将一个数目插入该占据的位置. 输入一个元素,检查数组列表中的每个元素,将其插入到一个已经排好序的数列中的适当位置,使数列依然有序,当最后一个元素放入合适位置时,该数组排序完毕. 代码示例: import java.util.Random; /** * 算法大神之路----排序(插入排序法) */ public class Study03 { public static void main(String[] args) { //新建一个数组 int[] arr = n

Java排序算法(一)

Java排序算法(一) 一.排序的基本概念和分类 1.1排序的定义 在<大话数据结构>中,排序定义为,假设含有n个记录的序列为{r1,r2,...,rn},其相应的关键字{k1,k2,...,kn},需确定1,2...n的一种排列p1,p2...pn,是其相应的关键字满足Kp1<=Kp2<=...<=Kpn(非递减或非递增)关键,即使得序列称为一个按关键字有序的序列{rp1,rp2...rp3},这样的操作称为排序. 1.2排序的稳定性 假设ki=kj(1<=i<

java算法插入排序优化代码

原文:java算法插入排序优化代码 代码下载地址:http://www.zuidaima.com/share/1550463280630784.htm 一个细节让插入排序更具效率 运行此方法需要为main方法传递参数 package com.zuidaima.sort; /** *@author www.zuidaima.com **/ public class TestSort { public static void main(String args[]){ int l = args.len

Java排序算法-Java入门|Java基础课程

Java 排序算法 1. 课程目标 排序是任何语言都会使用到的功能之一,然成果排序的算法有很多,对空间的要求及其时间效率也不尽相同. 本文章以Java语言示例,通过对空间要求.时间效率要求,来对比各种排序算法的使用场景 2.适用对象 Java语言初学者 Java算法爱好者 3.相关概念 3.1 排序概念 排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作. 3.2 排序算法 排序算法,就是如何使得记录按照要求排列的方法. 排序算法在很多领域得到相当地重视,尤其是在

JAVA排序

对于JAVA排序需要实现Comparator接口,来指定按什么顺序来排序,集合类用Collections.sort方法,数组用Array.sort方法,默认按升序排序 public class Music { private String filename; private String title; private int during; private String singer; private String type; private String size; private Strin