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;

}

}

}

你可能感兴趣的:(java插入排序)