`
jackey25
  • 浏览: 111393 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA排序算法实现代码-插入排序

阅读更多
插入排序算法步骤
1.从有序数列和无序数列{a2,a3,…,an}开始进行排序;
2.处理第i个元素时(i=2,3,…,n) , 数列{a1,a2,…,ai-1}是已有序的,而数列{ai,ai+1,…,an}是无序的。用ai与ai-1,a i-2,…,a1进行比较,找出合适的位置将ai插入;
3.重复第二步,共进行n-1次插入处理,数列全部有序。

我的做法(感觉代码有点乱)
import java.util.ArrayList;
import java.util.List;

public class InsertSort {
	 public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; // 预设数据数组

	 public static void main(String[] args){
		 List list = new ArrayList();
	   for(int jj : a){
		   InsertSort(a);
		   list.add(a[a.length-1]);
		   a[a.length-1] = 0;
	   }
	   for(int ee =0;ee<list.size();ee++){
		   System.out.println(list.get(ee));
	   }
	   System.out.println();
	 }
	 public static void InsertSort(int[] a){

		 List listSource = new ArrayList();
		 int tmp = 0;
		 for(int j=0 ; j<a.length; j++){
			 if(j == a.length-1){
				 continue;
			 }
			 if(a[j]>a[j+1])
			 {
				 tmp = a[j];
				 a[j] = a[j+1];
				 a[j+1] = tmp;
			 }
		 }
		 System.out.println("The biggest is : "+ a[a.length-1]);
	 }

}



参考一下网上的例子 :

public class Test {
  public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; // 预设数据数组

  public static void main(String args[]) {
    int i; // 循环计数变量
    int Index = a.length;// 数据索引变量

    System.out.print("排序前: ");
    for (i = 0; i < Index - 1; i++)
      System.out.print(" " + a[i] + " ");
    System.out.println("");

    InsertSort(Index - 1); // 选择排序
    // 排序后结果
    System.out.print("排序后: ");
    for (i = 0; i < Index - 1; i++)
      System.out.print(" " + a[i] + " ");
    System.out.println("");
  }

  public static void InsertSort(int Index) {
    int i, j, k; // 循环计数变量
    int InsertNode; // 欲插入数据变量

    for (i = 1; i < Index; i++) // 依序插入数值
    {
      InsertNode = a[i]; // 设定欲插入的数值
      j = i - 1; // 欲插入数组的开始位置
      // 找适当的插入位置
      while (j >= 0 && InsertNode < a[j]) {
        a[j + 1] = a[j];
        j--;
      }
      a[j + 1] = InsertNode; // 将数值插入
      // 打印目前排序结果
      System.out.print("排序中: ");
      for (k = 0; k < Index; k++)
        System.out.print(" " + a[k] + " ");
      System.out.println("");
    }
  }
}



运行结果 
排序前: 10 32 1 9 5 7 12 0 4 
排序中: 10 32 1 9 5 7 12 0 4 
排序中: 1 10 32 9 5 7 12 0 4 
排序中: 1 9 10 32 5 7 12 0 4 
排序中: 1 5 9 10 32 7 12 0 4 
排序中: 1 5 7 9 10 32 12 0 4 
排序中: 1 5 7 9 10 12 32 0 4 
排序中: 0 1 5 7 9 10 12 32 4 
排序中: 0 1 4 5 7 9 10 12 32 
排序后: 0 1 4 5 7 9 10 12 32 

分享到:
评论

相关推荐

    详解Java常用排序算法-插入排序

    Java排序算法 - 插入排序 插入排序(Insertion Sort)是一种简单的排序算法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增 1 的有序表。该算法的实现非常简单,但其时间复杂度...

    [Java算法-排序]-插入排序.java

    此外,文档还包括一个逐步指南,介绍了如何在Java中实现插入排序,包括详细的代码示例和实现细节。 文档还涵盖了高级主题,如如何优化代码以提高性能以及如何处理大的数组。该资源包括实用练习,让读者可以练习在...

    Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法

    Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...

    排序算法 -- 插入排序

    标签中的"源码"指的是上述给出的`InsertionSort.java`文件,这个文件包含了插入排序的Java实现。"工具"可能是指开发环境中使用的Java编译器(如JDK)、文本编辑器(如IDEA、Eclipse)或版本控制系统(如Git)等,...

    各种排序算法比较(java实现)

    `Algorithm.java`文件可能包含了这些排序算法的Java实现代码,而`常见排序算法的实现与性能比较.doc`文档则可能详细比较了这些算法的性能和适用场景。`readme.txt`文件可能是对整个项目的简要说明,包括如何运行和...

    Java排序算法代码

    插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间),它的时间复杂度为O(n^2),其中n是待排序数组的长度。 **特点:** - 最好情况时间复杂度:O(n),当输入数组已经是部分有序的情况下。 - 平均...

    Java各种排序算法代码.zip

    这个名为"Java各种排序算法代码.zip"的压缩包包含了一系列实现不同排序算法的Java源代码。排序算法是计算机科学中的基本概念,用于对一组数据进行排列。下面将详细讨论这些算法及其在Java中的实现。 1. 冒泡排序...

    排序算法9种--java实现

    这里我们专注于九种不同的排序算法的Java实现,这些算法在SortJavaVersion.zip压缩包中进行了整理,供学习和参考。 1. 冒泡排序(Bubble Sort):冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次...

    插入排序Java代码

    接下来,我们将基于给定的部分代码,详细解析插入排序的Java实现。 ```java public static int[] cr(int[] arr) { for (int i = 1; i ; i++) { int tmp = arr[i]; int j = i - 1; while (tmp &gt; arr[j]) { // ...

    Java各种排序算法代码.

    本资源包含的是Java实现的各种常见排序算法的代码示例,每个算法都有详细的注释,方便初学者理解和学习。 1. **冒泡排序**:这是一种基础的排序算法,通过不断交换相邻的逆序元素来逐渐把较大的元素推向数组的后部...

    各种排序算法java源代码

    本资源提供了Java语言实现的五种经典排序算法:冒泡排序、快速排序、插入排序、选择排序以及测试程序。下面将详细介绍这四种排序算法的原理、特点以及Java实现的关键点。 1. **冒泡排序**: 冒泡排序是一种简单...

    Java各种排序算法代码

    了解和掌握这些排序算法的原理和实现方式,不仅有助于编写高效的排序代码,还能帮助我们在面对实际问题时选择最合适的解决方案。在学习过程中,可以结合实际例子,通过编写代码来加深理解,同时通过分析时间复杂度和...

    java排序算法插入选择冒泡

    java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡

    java 排序算法 选择排序,插入排序,自顶向上合并排序,合并排序,快速排序

    在编程领域,排序算法是数据结构与算法学习中的重要组成部分,尤其在Java中,掌握各种排序算法对于优化程序性能至关重要。以下将详细讲解标题和描述中提到的五种排序算法:选择排序、插入排序、自顶向上合并排序、...

    插入排序算法java代码

    插入排序算法java代码,望对大家有帮助

    Java直接插入排序算法源码

    以下是简单的Java代码实现: ```java public class InsertionSort { public static void sort(int[] array) { for (int i = 1; i ; i++) { int key = array[i]; int j = i - 1; // 将大于key的元素向后移动 ...

    java实现的排序算法-8个

    Java作为一种广泛使用的编程语言,提供了丰富的工具和方法来实现各种排序算法。以下是基于给定的Java文件名(8种不同的排序算法)的详细说明: 1. **RadixSort.java** - 基数排序 基数排序是一种非比较型整数排序...

    八大排序算法总结(含Java实现源代码)

    这里我们将深入探讨八大排序算法,并结合Java语言来理解它们的实现原理。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的交换式排序算法。它通过重复遍历待排序的元素列表,比较相邻元素并根据需要交换它们,...

Global site tag (gtag.js) - Google Analytics