插入排序(Insert Sort), java版.
版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.
原文出处:http://blog.chenlb.com/2008/12/insert-sort-for-java.html
java 的库很丰富,为了复习下数据结构与算法,博客一下,方便自己以后查看,现在先为 插入排序写个代码。
插入排序原理:前面的都是有序的(x1,x2...xk),在添加一个数据e时,从最后一个到最一个比较(从xk到x1),直到找到合适的位置(比如,从小到大排序——直到第一个比e小)。
时间复杂度:平均O(n2),最坏情况O(n2)。
下面来看下代码:
- package com.chenlb.sort;
-
- import java.util.Arrays;
-
- public class InsertSort {
-
- public static int[] sort(int[] datas) {
- for(int i=1; i<datas.length; i++) {
- for(int j=i-1; j>=0; j--) {
- if(datas[j] > datas[j+1]) {
- SortUtil.swap(datas, j, j+1);
- }
- }
- }
- return datas;
- }
-
- public static void main(String[] args) {
- int[] datas = {5,1,3,4,9,2,7,6,5};
- sort(datas);
- System.out.println(Arrays.toString(datas));
-
- datas = SortUtil.randomDates(10);
- sort(datas);
- System.out.println(Arrays.toString(datas));
- }
-
- }
运行结果:
- [1, 2, 3, 4, 5, 5, 6, 7, 9]
- [49, 97, 200, 262, 356, 368, 618, 624, 682, 925]
分享到:
相关推荐
for(int i=0;i;i++) { String temp = strArray[i]; while(i>0 && (Integer.parseInt(temp) > Integer.parseInt(strArray[i-1]))) { strArray[i] = strArray[i-1]; i--; } ... }
在B站讲插入排序的笔记,需要的同学可以免费下载
用java实现插入排序InsertSort 用java实现插入排序InsertSort用 java实现插入排序InsertSort
java插入排序 Insert sort实例代码,需要的朋友可以参考一下
插入排序 C语言 Insert sort
给初学者学习算法用,用java实现的排序算法,包括二路归并和插入排序。
本文件包含插入排序的基本思路,代码实现,时间复杂度的分析。对数据结构与算法中插入排序算法的实现,附件以python实现。
常见的四种排序算法是:简单选择排序、冒泡排序、插入排序和快速排序。其中的快速排序的优势明显,一般使用递归方式实现,但遇到数据量大的情况则无法适用。实际工程中一般使用“非递归”方式实现。本文搜集发布四种...
网上有很多讲插入排序的算法,但大多数都没有提供完整的程序,于是我在业余时间参考网上资料写了一个插入排序的完整C++实现,在VC6.0++编译通过,大家打开压缩文件点击sort.dsw文件打开即可编译运行,代码也有详解的...
本文实例讲述了Python实现的插入排序,冒泡排序,快速排序,选择排序算法。分享给大家供大家参考,具体如下: #!/usr/bin/python # coding:utf-8 #直接插入排序 def insert_sort(list): for i in range(len(list))...
使用插入排序优化快速排序的算法实现.java实现,编译环境MyEclipse
#Insertion Sort 这些挑战将涵盖插入排序,一种简单直观的排序算法。 我们将首先从一个已经排序的列表开始。 #Insert element into sorted list 给定一个排序列表,在最右边的单元格中有一个未排序的数字 V,你能...
插入排序算法(动态数组实现) printf("--------插入排序算法的实现--------\n"); printf("输入数组的大小length:\n"); int length=0; scanf("%d",&length); /****动态分配内存初始化数组*********************...
编着玩的,插入排序和快速排序法。当遇到的数据比较多时,建议使用快速排序法。
1.插入排序:插入排序(insert.c)、shell排序(shellsort.c) 2.选择排序:选择排序(selectsort.c)、堆排序(heapsort.c) 3.交换排序:冒泡排序(bubblesort.c)、快速排序(quicksort.c) 4.归并排序(mgergesort.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...
说一说插入排序 插入排序的基本操作就是将一个数据插入到已经排序好序的数据中,从而得到一个新的,个... void insert_sort(int* a,int b)//实现插入排序,引入两个参数,a为数组首地址,b为数组元素个数 { for(in
直接插入排序的算法: 1.从第一个元素开始,该元素可以认为已经被排序 2.取出下一个元素,在已经排序的元素序列中从后向前扫描 3.如果该元素(已排序)大于新元素,将该元素移到下一位置 4.重复步骤3,直到找到已...
插入排序 依次拿到每个元素,每拿到一个就比较这个元素和前面的所有元素的大小, 然后根据他们的大小值排好顺序,知道拿到最后一个元素,并将其位置排好后,结束整个排序过程
insert_sort_with_DMA.c 使用DMA进行插入排序的c语言代码:)在这里,我们学习在插入排序中使用DMA(动态内存分配)的方法...