数据结构与算法-插入排序(java实现)
来源:互联网 发布:腾讯刷枪软件 编辑:程序博客网 时间:2024/06/16 23:30
初学java,将一些自己写的java小程序贴出来与大家分享。一方面,帮助一些需要的人;另一方面,也同时希望得到一些同行的review,提升自己。
排序算法是非常常用的基础算法,在java中 java.util.Arrays包中就有排序算法的实现(代码中的注释部分)。
插入排序的原理:
将一个元素插入到一个有序序列中,将元素从后到前逐个比较,直到遇到比自己小的元素为止(从小到大排序)。
如: A C D E F B 前四个元素构成一个有序序列,将B插入到有序序列中,从而使得整个序列有序。那么过程是这样的:
首先将B取出 temp = B;
将temp与F比较 那么F>temp 所以 将F赋值给F的后面一个元素,则序列为 A C D F F。
再次将temp与E比较,那么 同样 E>temp 则 同样操作 将E赋值给后面的一个元素,则序列为ACDEEF
....
将temp与C比较 那么C>temp 则 同样操作 序列为ACCDEF
将temp与A比较 这个时候A<temp 则停止 将temp赋值给A后面的一个元素 序列为ABCDEF
import java.util.*;
public class dataStr {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] arr={2,3,4,1,7,10};
//Arrays.sort(arr);
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+" ");
arr=insertSort(arr);
arrPrint(arr);
return ;
}
public static int[] insertSort(int [] resArr){
int len = resArr.length;
int j=0;
if((0==len)||(1==len))
{
return resArr;
}
for(int i=1;i<len;i++)
{
int temp=resArr[i];
for(j=i;j>0;j--)
{
if(resArr[j-1]>temp)
{
resArr[j]=resArr[j-1];
}
else
break;
}
resArr[j]=temp;
}
return resArr;
}
public static void arrPrint(int []arr)
{
int len=arr.length;
int i=0;
while(i<len)
{
System.out.print(arr[i++]+" ");
}
System.out.println();
return;
}
}
- 数据结构与算法——插入排序(Java实现)
- 数据结构与算法-插入排序(java实现)
- 数据结构与算法(8)---Java语言实现:插入排序
- 数据结构与算法:C++实现插入排序
- 插入排序 Java数据结构与算法
- <四>java数据结构与算法 插入排序
- Java数据结构与算法之插入排序
- java数据结构与算法____插入排序
- Java数据结构与算法---插入排序
- 《数据结构与算法》--插入排序(类模板实现)
- (数据结构与算法分析 八)------插入排序,希尔排序,归并排序的实现( Java语言描述)
- 数据结构与算法分析笔记与总结(java实现)--排序3:插入排序练习题
- 数据结构与算法(选择性插入排序)
- 【数据结构与算法】【排序】直接插入排序的代码实现
- java数据结构与算法-简单排序-插入排序
- 数据结构与算法-插入排序
- 【数据结构与算法】插入排序
- 算法与数据结构---插入排序
- 十一、线程锁
- 设计模式(23种,java)
- 自学Android到什么程度才能找到工作?
- 分水岭算法
- android 图片倒影效果
- 数据结构与算法-插入排序(java实现)
- Javascript Event loop 详解(youtube视频,个人备忘)
- spring集成Ehcache
- HDU 5701 中位数计数
- 25个实用chrome扩展
- canvas 绘图详解(4)
- 【2016杭电女生赛1006】【DP 类似LCS】Combine String 字符串c拆子串 能否恰好分成a与b
- 《java入门第一季》之LinkList模拟桟结构案例
- 抓包看<form>中的各种元素