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;
}
}
}