java插入排序
来源:互联网 发布:ubuntu如何删除软件 编辑:程序博客网 时间:2024/05/16 12:13
简单的讲就是把一个数字放在一串已经排好顺序的数组中,放进去后还要使得数组排序完整。
那么,就是1找位置,2填数字。这就是我的思路。
下面是插入排序的类:
package algorithm;public class insertion_sort { public double[] insertion_one(double num,double[] has_sort){//将num加入到has_sort数组中这里has_sort是已经排序的 int i; //找位置部分 for(i=0;i<has_sort.length;i++){ if(num<has_sort[i])break; } has_sort=this.input_one(has_sort, i, num); return has_sort; } public double[] input_one(double[] p,int num_in,double item){// 将一个数组中的item元素 double[] key=new double[p.length+1]; //加入到p数组中的第num_in位置 for(int i=0;i<p.length+1;i++){ //填数字的方法 if(i<num_in){ key[i]=p[i]; }else if(i==num_in) { key[i]=item;}else if(i>num_in){key[i]=p[i-1];} } return key; } public void display(double[] p){ //显示数组函数 for(int i=0;i<p.length;i++){ System.out.println(p[i]); } }}
通过下面的方法测试下上面:
package algorithm;public class text {public static void main(String[] args) { double[] array1={1,2,3,4,5,6,7}; //有序数组一个 double[] array2; //显示实验数组 insertion_sort text1=new insertion_sort();//text“行动”:做插入排序 array2=text1.insertion_one(3.3,array1); //插入3.3的 array2=text1.insertion_one(3.6,array2); //继续插入3.6的 text1.display(array2); }}
对于一个数组排序时 插入排序是拿第二个和第一个比,大的站第二小的去第一,然后是依次第二个和第三个比大的去第三小的去第二
这样个样子所以我加了如下的函数只需要加入到之前的类中
public double[] insertion_self_com(double[] p){ //单一杂乱数组插入排序for(int j=0;j<p.length;j++){for(int i = 1;i<p.length;i++){if(p[i]<p[i-1]){double key;key=p[i-1];p[i-1]=p[i];p[i]=key;}}}return p;}
测试下
package algorithm;public class text {public static void main(String[] args) { double[] array1={12,13,15,13,10,45,2,23}; //有序数组一个 double[] array2; //显示实验数组 insertion_sort text1=new insertion_sort();//text“行动”:做插入排序 array2=text1.insertion_self_com(array1); text1.display(array2); }}
应该还算ok
阅读全文
0 0
- Java排序--插入排序
- 排序-插入排序-Java
- 插入排序--直接插入排序[Java实现]
- 插入排序--折半插入排序[Java实现]
- java插入排序之直接插入排序
- 【插入排序】直接插入排序--Java
- 【插入排序】二分插入排序--Java
- 插入排序----直接插入排序----java实现
- [java]插入排序及折半插入排序
- java插入排序--直接插入排序
- Java插入排序
- java插入排序算法
- JAVA 插入排序
- JAVA插入排序分析
- java实现插入排序
- 插入排序java
- java 插入排序
- 插入排序(java)
- spring boot MultipartFile[]文件上传
- linux常用命令集合
- 新老DataHub迁移手册
- nodejs+express生成的模板引擎jade改为html
- Unity的PhysX物理引擎
- java插入排序
- scala基础---->序列trait:Seq、IndexedSeq及LinearSeq
- 基于Unity5 WebGL平台发布的Assetbundle工作流程以及优化简谈
- 基于solr实现hbase的二级索引
- Activity启动过二
- Linux下的关闭防火墙
- JS 获取浏览器高度和宽度
- cocos2dx opengl入门系列二-画一个三角形
- CGI编程