思想:将整个数组分成已排(左边)和待排(右边)两个部分,开始时已排部分只有数组最左边的一个成员,其余成员均属于待排部分。排序时,每次取出待排部分最左边的一个值,根据它的大小插入已排部分的适应位置。这样,已排部分逐步扩大,待排部分逐步缩小,直到已排部分扩大到整个数组为止.
import java.util.*;
public class InsertSort{
public void InsertSorting(Comparable[] arr){
Comparable temp;
for(int i=1;i<arr.length;i++){
int j=i;
while(j>0 && arr[j].compareTo(arr[j-1])<0){
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
--j;
}
}
}
public void PrintArr(Comparable[] arr){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
public static void main(String[] args){
Animal[] arr=new Animal[]{new Animal("dog"),new Animal("cat"),new Animal("rat"),
new Animal("pig"),new Animal("fox"),new Animal("eel"),new Animal("ant"),
new Animal("hen"),new Animal("bat")};
InsertSort is=new InsertSort();
is.InsertSorting(arr);
is.PrintArr(arr);
}
}
class Animal implements Comparable{
private String name;
public Animal(String s){
name=s;
}
public int compareTo(Object o){
if(name.compareTo(((Animal)o).getName())>0)
return 1;
else if(name.compareTo(((Animal)o).getName())<0)
return -1;
else
return 0;
}
public String getName(){
return name;
}
public String toString(){
return name;
}
}
分享到:
相关推荐
希尔排序,直接插入排序,折半插入排序算法的实现,c语言实现希尔排序
直接插入排序法~~~~~内部排序
java编写的插入排序算法
c语言基本插入排序法c语言基本插入排序法c语言基本插入排序法c语言基本插入排序法
插入排序算法c++实现,程序实现插入排序十万个数(调用)。可以改成输入。并附加了程序运行计时,用于测试时间复杂度,可以移除。绝对能用
Java语言实现的直接插入排序算法,代码里头有详细注释,注释皆为简单英文,因为这个算法比较简单,欢迎新手下载学习使用,欢迎后期的学习交流!
冒泡排序算法选择排序算法插入排序c语言实现
一段比较简便、易懂,且能运行的JAVA代码。运用的是插入排序法对10个数字进行排序。
使用C语言写的直接插入排序算法,简单易懂,希望对大家学习有帮助
插入排序法是一种简单的排序算法,它通过比较待排序元素与已排序元素的大小,插入到合适的位置,以达到排序的目的。插入排序法的时间复杂度为O(n^2),空间复杂度为O(1)。 知识点二:插入排序法的实现步骤 插入排序...
插入排序算法(动态数组实现) printf("--------插入排序算法的实现--------\n"); printf("输入数组的大小length:\n"); int length=0; scanf("%d",&length); /****动态分配内存初始化数组*********************...
用c语言写得插入排序和折半插入排序,很简单的。 *****多多支持
数据结构中的插入排序算法,C++实现的,算法交流。。。
直接插入排序算法, 直接插入排序算法
使用插入排序算法对输入的n个整数,按照从小到大的顺序排序。 Input Description 第一行输入一个整数n(0)。 第二行输入n个整数。 Output Description 输出排序后的整数,每个整数之间以一个空格分隔。注意:最后...
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
直接插入排序算法,C语言实现直接插入排序算法
这一个原创C语言编写的数组大小排序法,包括插入法和冒泡法.通过学习它的思想,把握这两种基本的算法,达到举一反三的效果。