day43--插入排序
插入排序:插入排序是简单直接的排序方式之一,将无序序列分成两块,左侧有序,右侧无序,然后将右侧的元素依次插入到左侧合适的位置,使得左侧元素有序。待右侧元素全部插入左侧,整个序列排序完成。
代码:
/*** Insertion sort*/public void insertionSort() {DataNode tempNode;int j;for (int i = 2; i <length; i++) {tempNode = data[i];//Find the position to insert.//At the same time,move other nodes.for(j = i -1; data[j].key > tempNode.key; j--) {data[j + 1] = data[j];}// of for j//Insertdata[j + 1] = tempNode;System.out.println("Round: " + (i - 1));System.out.println(this);}// of for i}// of insertionSortpublic static void insertionSortTest() {int[] tempUnsortedKeys = { -100, 5, 3, 6, 10, 7, 1, 9 };String[] tempContents = { "null", "if", "then", "else", "switch", "case", "for", "while" };DataArray tempDataArray = new DataArray(tempUnsortedKeys, tempContents);System.out.println(tempDataArray);tempDataArray.insertionSort();System.out.println("Result\r\n" + tempDataArray);}// of insertionSortTest
运行结果:
------------------------insertionSort-----------------------
I am a data array with 8 item.
(-100,null) (5,if) (3,then) (6,else) (10,switch) (7,case) (1,for) (9,while)
Round: 1
I am a data array with 8 item.
(-100,null) (3,then) (5,if) (6,else) (10,switch) (7,case) (1,for) (9,while)
Round: 2
I am a data array with 8 item.
(-100,null) (3,then) (5,if) (6,else) (10,switch) (7,case) (1,for) (9,while)
Round: 3
I am a data array with 8 item.
(-100,null) (3,then) (5,if) (6,else) (10,switch) (7,case) (1,for) (9,while)
Round: 4
I am a data array with 8 item.
(-100,null) (3,then) (5,if) (6,else) (7,case) (10,switch) (1,for) (9,while)
Round: 5
I am a data array with 8 item.
(-100,null) (1,for) (3,then) (5,if) (6,else) (7,case) (10,switch) (9,while)
Round: 6
I am a data array with 8 item.
(-100,null) (1,for) (3,then) (5,if) (6,else) (7,case) (9,while) (10,switch)
Result
I am a data array with 8 item.
(-100,null) (1,for) (3,then) (5,if) (6,else) (7,case) (9,while) (10,switch)
day43--插入排序相关推荐
- java 折半插入排序_[Java代码] Java实现直接插入排序和折半插入排序算法示例
1 排序思想: 将待排序的记录Ri插入到已经排好序的记录R1,R2,--,R(N-1)中. 对于一个随机序列而言,就是从第二个元素开始,依次将这个元素插入到它之前的元素中的相应位置.它之前的元素已经排 ...
- 直接插入排序与希尔排序
直接插入排序(Straight Insertion Sort): 一种最简单的排序方法,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的.记录数量增1的有序表. 原理图如 ...
- 排序算法之直接插入排序
1.基本思想: 已知待排序列r[1...n],先将序列中的第一个记录看成是一个有序的子序列,然后从第二个记录起逐个进行插入,直至整个序列变成关键字非递减有序序列为止. 具体操作如下: (1)查找出r[ ...
- c语言 静态链表插入排序,数据结构C语言版 表插入排序
西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...
- 插入排序,希尔排序,堆排序
本文将介绍三种排序算法--插入排序,希尔排序,堆排序.本文所有例子都是使用升序 一.插入排序 算法思想 维护一个有序数组,将要插入的数据与有序数组自最后一个元素直到合适位置的数一一比较. eg: 有序 ...
- 问题 c: 插入排序_插入排序:它是什么,以及它如何工作
问题 c: 插入排序 Insertion sort is a simple sorting algorithm for a small number of elements. 插入排序是一种针对少量元 ...
- 排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序...
先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...
- 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序
1 public class ThreeTypesOfBaseSort { 2 // ========================== 三种基本排序的效率对比 ================== ...
- python插入排序演示源码
工作闲暇时间,把写内容过程较好的内容段做个备份,下面的内容内容是关于python插入排序演示的内容,应该能对各朋友也有用处. def insert_sort(t): for i in xrange(l ...
- 【算法导论】插入排序
循环不变式 在数学上阐述了通过循环(迭代,递归)去计算一个累计的目标值的正确性. 关于循环不变式,我们必须要证明三条性质: 初始化:循环第一次迭代之前,它为真. 保持:如果循环的某次迭代之前它为真,那 ...
最新文章
- 2018java二级考试大纲_2018年全国计算机二级java考试简答题练习二
- S5PV210开发 -- 串口驱动开发
- Linux Shell脚本编程 --sort命令
- 循环——批量处理数据
- 正则表达式快速入门,转载
- 使用nagios监控oracle
- “生命游戏之父”因新冠肺炎逝世,回顾数学顽童的一生
- test luasql's postgresql driver performance (not better than pgbench)
- 忘记mysql密码 重置密码
- tensorflow系列之_pspnet网络
- 51单片机入门(第二讲)
- PYTHON-音视频合并方法
- pdf文件展示盖章及下载
- 评论抓取:Python爬取AppStore上的评论内容及星级,突破500条限制
- Web3.0 使用说明书
- Faster RCNN超详细入门 02 网络细节与训练方法
- 给程序员简历的一些建议
- css 文本、文字展开与收缩,查看更多收起
- 让扇贝单词书中的单词可以发音
- macOS下鼠标滚轮慢速滚动不起作用的问题解决