- 浏览: 148675 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (138)
- java基础 (26)
- 日常工作经验总结 (22)
- SVN学习与使用 (1)
- JBOSS学习与实践 (1)
- webService学习与实践 (4)
- redis学习与实践 (12)
- spring学习与实践 (0)
- hibernate学习与实践 (4)
- Struts2学习与实践 (0)
- mybatis学习与实践 (0)
- SpringMVC学习与实践 (0)
- jfreechart学习与使用 (0)
- javaScript学习与实践 (1)
- linux学习与实践 (4)
- Python学习与实践 (7)
- Oracle学习与实践 (21)
- Mysql学习与实践 (4)
- HTML5+CSS3学习与实践 (0)
- DIV+CSS学习与实践 (0)
- tomcat学习与实践 (1)
- mongodb学习与实践 (1)
- Git学习与实践 (2)
- hadhoop学习与实践 (0)
- shiro学习与实践 (0)
- CMS学习与实践 (0)
- Jmeter学习与实践 (0)
- java测试学习与实践 (2)
- bootstrap学习与实践 (0)
- jquery学习与实践 (0)
- Spring+hibernate+Struts2框架开发CRM项目 (0)
- JVM学习与实践 (0)
- 推荐学习网站 (1)
- 日常工作必备小技能 (4)
- Apache实践 (1)
- dubbo学习与实践 (2)
- Centos7 (6)
- 面试题目集合(收集各大网站) (4)
- 大数据学习 (1)
- 财富本 (2)
- 股票投资学习 (0)
- ZooKeeper (0)
- python切割集合里面相同的元素到一个集合里面 (1)
- 机器学习与深度学习 (1)
最新评论
-
魏叔武:
...
基于UDP协议的Socket编程
插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。
算法步骤
1,将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
2,从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
java代码实现:
插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入。
算法步骤
1,将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
2,从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
java代码实现:
package com.paixu; public class insertionSort { /** * @param args */ public static void main(String[] args) { // 定义一个数组 int[] insertion = { 1, 4, 5, 7, 81, 23, 4, 46, 67, 98, 64, 33, 37, 99, 111, 23, 3, 298 }; System.out.println("未排序的数组:\n"); for (int m = 0; m < insertion.length; m++) { System.out.print(insertion[m] + " "); } System.out.println(" "); int preIndex, current; for (int i = 1; i < insertion.length; i++) { preIndex = i - 1; current = insertion[i]; while (preIndex >= 0 && insertion[preIndex] > current) { insertion[preIndex + 1] = insertion[preIndex]; preIndex--; } insertion[preIndex + 1] = current; } System.out.println("排序结果:"); for (int j = 0; j < insertion.length; j++) { System.out.print(insertion[j] + " "); } } }
未排序的数组: 1 4 5 7 81 23 4 46 67 98 64 33 37 99 111 23 3 298 排序结果: 1 3 4 4 5 7 23 23 33 37 46 64 67 81 98 99 111 298
发表评论
-
jdk1.8切换1.7失效问题
2019-12-24 00:02 447项目需要jdk1.7,高了启动不了。会报错。 然而,我安装j ... -
map集合遍历
2017-09-05 16:10 554public class Test{ pu ... -
JVM调优总结(十)-调优方法
2017-07-30 21:45 0http://pengjiaheng.iteye.com/bl ... -
框架整合目标
2017-07-21 21:35 01, spring+hibernate+struts2+my ... -
java利用jxl.jar生成excel文档
2017-06-28 15:05 395java代码: package com.test.read ... -
利用jxl读取excel文件里面的内容
2017-06-28 14:23 488excel里面的内容: � ... -
数组与集合互相转化
2017-04-21 20:20 390package com.ray.util; impo ... -
数组转化为集合
2017-04-16 21:07 879package com.ray.test; im ... -
快速排序
2017-03-31 14:32 404public class QuickSort { publ ... -
归并排序
2017-03-31 14:20 452public class mergeSort { ... -
希尔排序
2017-03-31 13:44 358public class shellSort { ... -
选择排序
2017-03-31 10:02 475选择排序是一种简单直观的排序算法,数据规模越小越好。唯一的好处 ... -
HTTP协议详解(真的很经典)
2017-03-27 14:14 401[b][b]HTTP是一个属于应用层的面向对象的协议,由于其简 ... -
多线程学习的几篇文章
2017-02-06 17:55 403Java多线程(一)、多线程的基本概念和使用 http:// ... -
java实现可变参数的方法
2017-02-06 17:16 383/** * * * @author Administr ... -
java实现日期的时间的加减
2017-02-06 17:11 1091/** * 时间的加减 * @author Adminis ... -
冒泡排序算法java
2016-12-07 15:22 461今天突然被人问到冒泡排序怎么解决,一时之间自己竟 ... -
FTP上传文件功能
2016-12-06 09:31 419ftp上传功能是很多的应用软件都必备的一个基础功能,特别是CM ... -
java基础之map集合遍历
2016-11-04 16:27 479由于map集合在平时用的时候都是直接get(key)取出单个值 ... -
基于UDP协议的Socket编程
2016-10-23 14:11 1535TCP的可靠保证,是它的� ...
相关推荐
说一说插入排序 插入排序的基本操作就是将一个数据插入到已经排序好序的数据中,从而得到一个新的,个数加一的有序数据,算法适用与少量的数据的排序。时间复杂度O(n^2),是稳定的排序算法。 基本思想:每步将一个待...
排序算法-----插入算法
直接插入排序是一种简单的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。在Swift语言中实现直接插入排序,通常会涉及到数组操作,通过交换元素的...
直接插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。直接插入排序在实现上,在一趟排序中,需要比较和移动的次数是逐步减少...
Java 简单插入排序实例详解 插入排序是一种简单且实用的排序算法,本文将详细介绍 Java 实现的插入排序实例,并对其进行性能分析。 一、基本概念 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中...
插入排序是一种简单直观的排序算法,非常适合小规模数据集的排序。该算法通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序,即只需用到...
**插入排序**是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。本文将详细介绍Java实现的插入排序算法,并分析其效率。 ### 算法原理...
**插入排序**是一种简单直观的排序算法,它的工作原理类似于我们日常生活中整理扑克牌的过程。在计算机科学中,插入排序通常用于小规模数据或者部分有序的数据,它的效率相对较低,但对于部分有序的数据,插入排序...
根据给定的文件信息,我们可以总结出以下关于“C++实现插入排序”的相关知识点: ### 一、插入排序算法概述 插入排序(Insertion Sort)是一种简单直观的比较排序算法。它的工作原理是通过构建有序序列,对于未...
插入排序是一种基础且直观的排序算法,其工作原理类似于我们日常生活中的整理扑克牌。在Java中实现插入排序,我们可以按照以下步骤进行: 1. **基本思想**:将一个记录插入到已经排好序的有序表中,从而得到一个新...
插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序...
### 直接插入排序知识点详解 #### 一、概念及介绍 **直接插入排序**(Insertion Sort),作为基础排序算法之一,在数据量较小的情况下表现出较高的效率。该算法的基本思想是将一个待排序的记录插入到一个已排序的...
直接插入排序(straight insertion sort)的做法是: 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。 第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据...
"C语言排序算法之插入排序" 插入排序是C语言中的一种常用的排序算法,它的实现思路是将一个数组分成已排序和未排序两部分,然后逐步将未排序部分的元素插入到已排序部分中,直到整个数组都被排序。 InsertSort函数...
### 简单插入排序详解 #### 一、基本概念 简单插入排序是一种直观且易于理解的排序算法,其核心思想是将一个无序数组逐步转换为有序数组。按照简单的插入排序逻辑,整个排序过程可以被视为两个部分:有序区与无序...
直接插入排序是一种简单的排序算法,它的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。在Java中,实现直接插入排序通常涉及一个for循环来遍历数组,以及一个内部...
快速排序和插入排序是两种广泛使用的排序算法,它们在计算机科学和编程中有着重要的地位,尤其是在数据处理和算法分析方面。下面将详细讲解这两种排序算法的原理、Java实现及其特点。 **快速排序** 快速排序是一种...