美文网首页
java插入排序

java插入排序

作者: Mr_馮 | 来源:发表于2017-05-22 23:05 被阅读0次

    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;

    }

    }

    }

    相关文章

      网友评论

          本文标题:java插入排序

          本文链接:https://www.haomeiwen.com/subject/qqoixxtx.html