文档章节

InsertSort -- 插入排序

garkey
 garkey
发布于 2017/09/07 23:44
字数 163
阅读 1
收藏 0
点赞 0
评论 0

/*
 * 插入排序基本思想
 * 将n个元素的数列分为已有序和无序两个部分,如插入排序过程示例下所示:
 * {{a1},{a2,a3,a4,…,an}}
 * {{a1⑴,a2⑴},{a3⑴,a4⑴ …,an⑴}}
 * {{a1(n-1),a2(n-1) ,…},{an(n-1)}}
 * 每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,
 * 找出插入位置,将该元素插入到有序数列的合适位置中。
 */

public class InsertSort {
	public static void sort(int[] data) {
		for (int i = 1; i < data.length; i++) {
			for (int j = i; (j > 0) && (data[j] < data[j - 1]); j--) {
				int temp = data[j];
				data[j] = data[j - 1];
				data[j - 1] = temp;
			}
		}

	}
}

 

本文转载自:

共有 人打赏支持
garkey
粉丝 3
博文 56
码字总数 8633
作品 0
海淀
程序员
排序算法:二分排序(插入排序+二分查找)

插入排序就是一直向后读,第一个数,加入前面已经有序的一串数里。 而插入排序是笨笨的一个个向前找的,可以优化一下,用二分查找找到合适的位置。 插入排序代码 void Insertsort2(int a[], ...

qq_36523667 ⋅ 03/03 ⋅ 0

排序算法(四)插入排序

插入排序是一种简单直观的排序算法。它的原理是通过构建有序序列,对于未排序的数据,在已排序的序列中从后向前扫描,找到相应的位置,并插入数据形成有序排列。 算法实现描述

巡山 ⋅ 2016/05/17 ⋅ 0

插入排序(黄柳淞)

import java.util.Arrays; public class Demo { public static void main(String[] args) { int a[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; int[] arr = new int[] { 9, 8, 7, 6, 5, 4, 3, 2,......

黄柳淞 ⋅ 2016/11/21 ⋅ 0

排序(一)

(一) 插入排序(insertion sort): 是最简单的排序算法之一,插入排序由 N - 1 趟排序组成。对于 P = 1 趟到 P = N - 1 趟,插入排序保证从位置 0 到 位置 P 的元素为已排序状态。一般方法...

passionfly ⋅ 2014/11/02 ⋅ 0

排序算法:插入排序(代码优化)

必须得看看http://blog.csdn.net/morewindows/article/details/6665714 一开始第一个数,后来读到第二个数,加进去,强行排序一波,再往后读一个,强行排序一波。 代码1: void Insertsort2...

qq_36523667 ⋅ 03/03 ⋅ 0

20180317插入排序-直接插入

前置知识 + 可以将插入排序看成两步操作 + 插入排序的基本思想就是将一条记录插入到一组已经有序的序列中,继而得到一个有序的、数据个数加1的新的序列。 本期内容 名词解释 + 直接插入排序将...

im天行 ⋅ 03/17 ⋅ 0

希尔排序(Shell Sort)

1、定义 希尔排序(Shell Sort)是插入排序的一种。因D.L.Shell于1959年提出而得名。 2、基本思想 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的...

野渡书生 ⋅ 2016/05/03 ⋅ 0

排高低:冒泡与插入排序。不要管别人,自己设计的才是自己的。

算法问题的一个分类:排高低。 背景:有一系列的值,有大有小,由于某个目的(比如两两分组让最小者的和最大、比如容纳最多和不超过某个值的元素、等等),需要先把它们排一下高低。 一个数值...

freeself3 ⋅ 2017/07/18 ⋅ 0

用Java实现几种常见的排序算法

用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。 插入排序: package org.rut.util.algorithm.support; import org.rut...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

直接插入排序以及其改进版-二分法排序

插入排序是一种简单直观的排序算法。序列可以分为有序区和无序区,开始时有序区只有第一个元素,然后每次把无序区中第一个元素插入到有序区中。 当无序区为空时,排序结束。 那如何把元素插入...

realsa ⋅ 2016/10/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(十)JavaScript的DOM基础

JavaScript零基础入门——(十)JavaScript的DOM基础 欢迎大家回到我们的JavaScript零基础入门,上一节课,我们了解了JavaScript中的函数,这一节课,我们来了解一下JavaScript的DOM。 第一节...

JandenMa ⋅ 今天 ⋅ 0

Spring mvc DispatchServlet 实现原理

在Spring中, ContextLoaderListener只是辅助类,在web 容器启动的时候查找并创建WebApplicationContext对象,通过该对象进行加载spring的配置文件。而真正的逻辑实现其实是在DispatcherSer...

轨迹_ ⋅ 今天 ⋅ 0

Weex起步

本教程假设你已经在你的本地环境安装了node 其实weex起步教程在 https://github.com/lilugirl/incubator-weex 项目说明文件中都已经有了,但为了有些同学看到英文秒变文盲,所以这里我重新写...

lilugirl ⋅ 今天 ⋅ 0

Jenkins实践1 之安装

1 下载 http://mirrors.jenkins.io/war/latest/jenkins.war 2 启动 java -jar jenkins.war 前提:安装jdk并配置环境变量 启动结果节选: ************************************************......

晨猫 ⋅ 今天 ⋅ 0

组合数学 1-2000 中,能被6或10整除的数的个数

1--2000 中,能被6或10整除的数的个数 利用集合的性质 能被6整除的个数 2000/6 = 333 能被10整除的个数 2000/10 = 200 能被6和10整除的个数 2000/30 = 66 能被6或10整除的个数 333+200-66 =...

阿豪boy ⋅ 今天 ⋅ 0

一篇文章学懂Shell脚本

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用...

Jake_xun ⋅ 今天 ⋅ 0

大数据工程师需要精通算法吗,要达到一个什么程度呢?

机器学习是人工智能的一个重要分支,而机器学习下最重要的就是算法,本文讲述归纳了入门级的几个机器学习算法,加大数据学习群:716581014一起加入AI技术大本营。 1、监督学习算法 这个算法由...

董黎明 ⋅ 今天 ⋅ 0

Kylin 对维度表的的要求

1.要具有数据一致性,主键值必须是唯一的;Kylin 会进行检查,如果有两行的主键值相同则会报错。 2.维度表越小越好,因为 Kylin 会将维度表加载到内存中供查询;过大的表不适合作为维度表,默...

无精疯 ⋅ 今天 ⋅ 0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及...

kim_o ⋅ 今天 ⋅ 0

代码注释中顺序更改 文件读写换行

`package ssh; import com.xxx.common.log.LogFactory; import com.xxx.common.log.LoggerUtil; import org.apache.commons.lang3.StringUtils; import java.io.*; public class DirErgodic ......

林伟琨 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部