排序算法-直接插入排序
来源:互联网 发布:手机淘宝抢购要刷新吗 编辑:程序博客网 时间:2024/06/05 00:35
直接插入排序是一种最简单的排序方法,原理就是把一个记录插入到已经排序好的表中,然后得到一个新的有序表。
public class 插入排序
{
public static int[] insertSort(int arr[]){
int arrSort[]=new int[arr.length];
arrSort[0]=arr[0];//赋值
for(int i=1;i<arr.length;i++){
next(i,i,arr[i],arrSort);
}
return arrSort;
}
/**
* 将一个数插入到有序数组中,使其升序
*/
static void next(int i,int tempi,int target,int arrSort[]){
if(target<arrSort[i-1]){
int temp=arrSort[i-1];
arrSort[i-1]=target;
arrSort[i]=temp;
if(i-1>0)
next(i-1,tempi,target,arrSort);
}else{
if(i==tempi)
arrSort[i]=target;
}
}
public static void main(String[] args)
{
int arr[]={222,99,88,9,0,8988,8790809,808,1};
arr=insertSort(arr);
//排序后打印输出
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
public class 插入排序
{
public static int[] insertSort(int arr[]){
int arrSort[]=new int[arr.length];
arrSort[0]=arr[0];//赋值
for(int i=1;i<arr.length;i++){
next(i,i,arr[i],arrSort);
}
return arrSort;
}
/**
* 将一个数插入到有序数组中,使其升序
*/
static void next(int i,int tempi,int target,int arrSort[]){
if(target<arrSort[i-1]){
int temp=arrSort[i-1];
arrSort[i-1]=target;
arrSort[i]=temp;
if(i-1>0)
next(i-1,tempi,target,arrSort);
}else{
if(i==tempi)
arrSort[i]=target;
}
}
public static void main(String[] args)
{
int arr[]={222,99,88,9,0,8988,8790809,808,1};
arr=insertSort(arr);
//排序后打印输出
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
运行程序输出以下结果
0
1
9
88
99
222
808
8988
8790809
0 0
- [排序算法,插入排序]--直接插入排序
- 直接插入排序算法
- 直接插入算法排序
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- 直接插入排序算法
- ArrayList特有方法
- Enable Unattended Upgrades for Debian Linux
- C++指针与数组
- LinkedList特有方法
- Shiro验证码检测
- 排序算法-直接插入排序
- 程序员值得收藏和推荐的一些平台网站
- 协议森林
- Tinking in java读书笔记---关于继承和设置jdk的一个小小错误
- 1643: [Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪
- maven 安装
- ZedBoard之GPIO详解
- Android图片加载神器之Fresco,基于各种使用场景的讲解
- OPNET学习笔记之simple_source模块