`
kobe学java
  • 浏览: 248336 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

插入排序(Insert Sort), java版.

    博客分类:
  • java
 
阅读更多

插入排序(Insert Sort), java版.

发表于:2008年12月28日 | 分类:算法 | 标签: sort | views(851)

版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.

 

原文出处:http://blog.chenlb.com/2008/12/insert-sort-for-java.html

java 的库很丰富,为了复习下数据结构与算法,博客一下,方便自己以后查看,现在先为 插入排序写个代码。

插入排序原理:前面的都是有序的(x1,x2...xk),在添加一个数据e时,从最后一个到最一个比较(从xk到x1),直到找到合适的位置(比如,从小到大排序——直到第一个比e小)。
时间复杂度:平均O(n2),最坏情况O(n2)。

下面来看下代码:

  1. package com.chenlb.sort;  
  2.   
  3. import java.util.Arrays;  
  4.   
  5. public class InsertSort {  
  6.   
  7.     public static int[] sort(int[] datas) {  
  8.         for(int i=1; i<datas.length; i++) {  
  9.             for(int j=i-1; j>=0; j--) {  
  10.                 if(datas[j] > datas[j+1]) {  
  11.                     SortUtil.swap(datas, j, j+1);   //交换  
  12.                 }  
  13.             }  
  14.         }  
  15.         return datas;  
  16.     }  
  17.   
  18.     public static void main(String[] args) {  
  19.         int[] datas = {5,1,3,4,9,2,7,6,5};  
  20.         sort(datas);  
  21.         System.out.println(Arrays.toString(datas));  
  22.   
  23.         datas = SortUtil.randomDates(10);  
  24.         sort(datas);  
  25.         System.out.println(Arrays.toString(datas));  
  26.     }  
  27.   
  28. }  

运行结果:

  1. [1, 2, 3, 4, 5, 5, 6, 7, 9]  
  2. [49, 97, 200, 262, 356, 368, 618, 624, 682, 925]  

 

分享到:
评论

相关推荐

    JAVA插入排序 insert sort

    for(int i=0;i;i++) { String temp = strArray[i]; while(i&gt;0 && (Integer.parseInt(temp) &gt; Integer.parseInt(strArray[i-1]))) { strArray[i] = strArray[i-1]; i--; } ... }

    插入排序(Insert Sort).md

    在B站讲插入排序的笔记,需要的同学可以免费下载

    用java实现插入排序InsertSort

    用java实现插入排序InsertSort 用java实现插入排序InsertSort用 java实现插入排序InsertSort

    java插入排序 Insert sort实例

    java插入排序 Insert sort实例代码,需要的朋友可以参考一下

    C语言实现的插入排序

    插入排序 C语言 Insert sort

    插入排序和归并排序的实现java

    给初学者学习算法用,用java实现的排序算法,包括二路归并和插入排序。

    03_insert_sort_插入排序算法_

    本文件包含插入排序的基本思路,代码实现,时间复杂度的分析。对数据结构与算法中插入排序算法的实现,附件以python实现。

    C#,插入排序算法(Insert Sort Algorithm)的源代码与数据可视化

    常见的四种排序算法是:简单选择排序、冒泡排序、插入排序和快速排序。其中的快速排序的优势明显,一般使用递归方式实现,但遇到数据量大的情况则无法适用。实际工程中一般使用“非递归”方式实现。本文搜集发布四种...

    插入排序C++实现

    网上有很多讲插入排序的算法,但大多数都没有提供完整的程序,于是我在业余时间参考网上资料写了一个插入排序的完整C++实现,在VC6.0++编译通过,大家打开压缩文件点击sort.dsw文件打开即可编译运行,代码也有详解的...

    Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例

    本文实例讲述了Python实现的插入排序,冒泡排序,快速排序,选择排序算法。分享给大家供大家参考,具体如下: #!/usr/bin/python # coding:utf-8 #直接插入排序 def insert_sort(list): for i in range(len(list))...

    Quick_Insert_Sort.zip_Quick

    使用插入排序优化快速排序的算法实现.java实现,编译环境MyEclipse

    InsertionSort:使用插入排序算法将整数插入排序列表的 Java 程序

    #Insertion Sort 这些挑战将涵盖插入排序,一种简单直观的排序算法。 我们将首先从一个已经排序的列表开始。 #Insert element into sorted list 给定一个排序列表,在最右边的单元格中有一个未排序的数字 V,你能...

    插入排序算法(动态数组实现)

    插入排序算法(动态数组实现) printf("--------插入排序算法的实现--------\n"); printf("输入数组的大小length:\n"); int length=0; scanf("%d",&length); /****动态分配内存初始化数组*********************...

    sort_insert_quick.zip_Quick_排序方法

    编着玩的,插入排序和快速排序法。当遇到的数据比较多时,建议使用快速排序法。

    排序算法的C语言代码

    1.插入排序:插入排序(insert.c)、shell排序(shellsort.c) 2.选择排序:选择排序(selectsort.c)、堆排序(heapsort.c) 3.交换排序:冒泡排序(bubblesort.c)、快速排序(quicksort.c) 4.归并排序(mgergesort.c)

    选择排序和插入排序c#源码

    选择排序&插入排序 //选择排序 public void select_sort(int[] a) { int n = a.Length; int minIndex=0; int temp; for (int i = 0; i ; i++) { minIndex = i; for (int j = i; j ; j++) { if (a...

    c++插入排序详解

    说一说插入排序 插入排序的基本操作就是将一个数据插入到已经排序好序的数据中,从而得到一个新的,个... void insert_sort(int* a,int b)//实现插入排序,引入两个参数,a为数组首地址,b为数组元素个数 { for(in

    插入排序的算法代码和描述

    直接插入排序的算法: 1.从第一个元素开始,该元素可以认为已经被排序 2.取出下一个元素,在已经排序的元素序列中从后向前扫描 3.如果该元素(已排序)大于新元素,将该元素移到下一位置 4.重复步骤3,直到找到已...

    InsertSort.java

    插入排序 依次拿到每个元素,每拿到一个就比较这个元素和前面的所有元素的大小, 然后根据他们的大小值排好顺序,知道拿到最后一个元素,并将其位置排好后,结束整个排序过程

    insert_sort_with_DMA.c:使用DMA进行插入排序的c语言代码:)

    insert_sort_with_DMA.c 使用DMA进行插入排序的c语言代码:)在这里,我们学习在插入排序中使用DMA(动态内存分配)的方法...

Global site tag (gtag.js) - Google Analytics