java sort 插入排序_insertionSort()插入排序

题目 用插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null 解题 public class Solution { /** * @param head: The first node of linked list. * @return: The head of linked list. */ public ListNode insertionSortList(L

插入排序算法通过比较和插入来实现排序,其排序流程如下:

1.首先对数组的前两个数据进行从小到大排序;

2.接着将第三个数据与排好序的前两个数据进行比较,将第三个数据插入到合适的位置。

3.然后将第四个数据插入到已经排好序的前三个数据当中去。希尔排序(Shell’s Sort)    希尔排序又称“缩小增量排序”(Diminishing Incerment Sort),是插入排序的一种,因D.L.Shell于1959年提出而得名。直接插入排序当待排序的记录个数较少且待排序序列的关键字基本有序时,效率较高。希尔排序基于以上两点,从“减少

4.不断重复上述过程,知道把最后一个数据插入到合适的位置。

package suanfa;

public class InsertQort {

public static void main(String[] args) {

int LEN =30;

int[] arr = new int[LEN];

for (int i = 0; i < LEN; i++) {

arr[i] = (int) ((Math.random()) * 11);

}

insertsort(arr);

for (int i = 0; i < LEN; i++) {

System.out.print(arr[i] + "-");

}

}

static void insertsort(int arr[]) {

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

int j = i;

int t = arr[i];

while (j > 0 && t < arr[j - 1]) {

arr[j] = arr[j - 1];

j--;

}

arr[j] = t;

}

}

}程序中的算法也可以这样描述

1.数组中的第一个数据位置不变;

2.从数组的第二个数据开始,依次插入到拍好的数据中去,规则就是从队尾依次向前比较直到碰见小于自己的数据。同时自己每向前移一位,后面的数据就往后移一位;

3.重复以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值