Java学习--排序算法之插入法排序
算法策略:按顺序读入数组内的元素,从后往前的与已有元素比较大小,插入到前一位比自己小并且后一位比自己小的位置。
数据结构:常量、变量和数组;
控制结构:顺序结构、有界循环结构和条件循环结构。
算法流程图:
程序设计代码:
public class Sort {public static void main(String[] args) {
// TODO Auto-generated method stub
//建立一个数组int[] array = {10,12,58,61,16,15,25,36,37,38,48,59,68,69,78,1};
//建立一重循环,可以从头到尾去遍历每一个元素for (int i = 1; i < array.length;i++){
//将当前的元素的值赋值给key,记录当地元素的值,以便与前边的元素进行比较大小int key = array[i];
//定义当前元素下标的前一位元素的下标int j = i - 1;
//建立循环,比较当前元素与前边元素的值while(j>=0 && array[j]>key){
//因为当前元素比前一位元素小,所以把前边一位元素的值赋予后边一位,即是将该元素的位置后移一位array[j+1] = array[j];
//将下标数字减一,以便比较当前元素和前边两位的大小j--;}
//当前元素比前边元素大,跳出循环,将当前元素的值赋值给该位置的元素,即是将该元素安插在当前位置array[j+1] = key;}
//遍历数组,输出数组各元素for(int i = 0;i<array.length;i++){System.out.print(array[i] + " ");}}}
Java学习--排序算法之插入法排序相关推荐
- Java常见排序算法之Shell排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
- java arrays.sort() c_5.4 (Java学习笔记)集合的排序(Collections.sort(),及Arrays.sort())...
1.Comparable接口 这个接口顾名思义就是用于排序的,如果要对某些对象进行排序,那么该对象所在的类必须实现 Comparabld接口.Comparable接口只有一个方法CompareTo() ...
- java排序算法 sort_Java排序算法之SleepSort排序示例
本文实例讲述了Java排序算法之SleepSort排序.分享给大家供大家参考,具体如下: 分享一个很有创意的排序算法:sleepSort .巧妙利用了线程的sleep(),代码如下: public c ...
- Java经典排序算法:选择排序,动图演示排序过程
Java经典排序算法:选择排序,动图演示排序过程 示意动图: public class Main {public static void main(String[] args) {new Main() ...
- JAVA排序算法之希尔排序
基本介绍 希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法.希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序. 希尔排序法基本思 ...
- 排序算法之希尔排序(Java实现)
希尔排序介绍 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法.希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序. 希尔排序基本思想 ...
- 排序---初级排序算法(选择排序、插入排序和希尔排序)
写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera Algorithms Part1&2 本文 ...
- 排序算法:桶排序、计数排序、基数排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 这篇博客将主要介绍三种时间复杂度是 ...
- c++ 二维数组 排序_【算法】排序算法之计数排序
前几回,我们已经对[算法]排序算法之冒泡排序.[算法]排序算法之插入排序.[算法]排序算法之希尔排序.[算法]排序算法之选择排序.[算法]排序算法之快速排序.[算法]排序算法之归并排序.[算法]排序算 ...
最新文章
- PLSQL 的 for循环的小例子
- 高中数学?_JAVA
- Winform中实现自定义水晶按钮控件(附代码下载)
- 小米路由器 梅林_WIFI6真的有用吗?小米ALOT路由器AX3600上手体验!小米智能家居生态之选及选购分析...
- WPF调用OCX控件
- UIPickerView的使用
- HFSS天线设计过程学习笔记
- 计算机office的好处,office2007精简版有什么优点?精简版优点介绍
- Firefox版哔哩哔哩助手,修改自chrome1.2.1版
- 免费的安全删除软件 SDelete v1.51
- 搭建web服务器asp网站传马
- python爬取电影信息并插入至MySQL数据库
- Linux中根据文件大小排序
- amp; AMP; 会显示位 | Amp;aMp;amP;会原样显示
- 资产负债表和利润表的编制公式
- 走出浮躁的泥沼:浮躁的社会原因
- php.bak是什么,bak文件是什么
- 如何将string的日期转换为date的通用方法,包含正则表达处理(一)
- 流体力学—定义与连续性介质模型
- 40亿美元!张一鸣拿下字节版王者荣耀,过渡期给员工发奖金
热门文章
- 【matlab】自定义颜色和线形绘图
- 债券价格和到期收益率的关系_债券价格、到期收益率与票面利率之间的关系是什么?...
- stm32f103电子钟心得体会_stm32f103时钟树讲解
- vue table自定义样式
- 2020年“信创”火了!一文看懂什么是信创
- delta和gamma中性_Delta中性
- WebView深究之Android是如何实现webview初始化的
- Java练习题十四期:不要二
- POI 导入带公式的EXCEL 精度出问题
- 电脑上PDF文档怎么做笔记?