java插入排序

public class Demo4

{

public static void main(String[] args)

{

// TODO 自动生成的方法存根

int[] arr1 =

{ 2, 4, 3, 17, 1, 5, 5, 4, 3, 76, 5, 4, 3, 2, 43, 5, 4, 6, 8, 9, 34, 5, 67, 8, 9, 0, 33, 44, 32, 21 };

Sort sort = new Sort();

sort.insert(arr1);

for (int l = 0; l < arr1.length; l++)

{

System.out.print(arr1[l] + ",");

}

}

}

class Sort

{

public void insert(int[] arr)

{

//把第一个值看做是有序数组,其他数值看做无序数组

for (int i = 1; i < arr.length; i++)

{

//取无序数组的值与有序数组中的值进行比较

for (int j = 0; j < i; j++)

{

//找到应该放的位置,如果小于有序数组中的一个值则应该放在这个值的前面。

if (arr[i] < arr[j])

{

//从有序数组最后一个数开始替换,直到替换到应该放的位置,然后结束内部循环。

for (int k = i; k > j; k--)

{

int m;

m = arr[k];

arr[k] = arr[k - 1];

arr[k - 1] = m;

}

continue;

}

}

}

}



public void insert2(int[] arr)

{

for (int i = 1; i < arr.length; i++)

{

int index = i - 1;

while (index > 0 && arr[index + 1] < arr[index])

{

int m;

m = arr[index];

arr[index] = arr[index + 1];

arr[index + 1] = m;

index--;

}

}

}

public void insert3(int[] arr)

{

for (int i = 1; i < arr.length; i++)

{

int index = i - 1;

int arr_index = arr[i];

while (index > 0 && arr[index + 1] < arr[index])

{

arr[index + 1] = arr[index];

index--;

}

arr[index + 1] = arr_index;

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,353评论 0 33
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,947评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,538评论 0 41
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,039评论 18 399
  • 飞机上看到的浩瀚天空,真有种渺万里层云的豪情 一辆车、一棵树、一片海构成了一个宁静的清晨 海到尽头天作岸,奇妙的是...
    一笑人生阅读 2,767评论 0 2