public class Demo4
{
public static void main(String[] args)
{
// TODO 自動(dòng)生成的方法存根
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)
{
//把第一個(gè)值看做是有序數(shù)組汗唱,其他數(shù)值看做無序數(shù)組
for (int i = 1; i < arr.length; i++)
{
//取無序數(shù)組的值與有序數(shù)組中的值進(jìn)行比較
for (int j = 0; j < i; j++)
{
//找到應(yīng)該放的位置,如果小于有序數(shù)組中的一個(gè)值則應(yīng)該放在這個(gè)值的前面。
if (arr[i] < arr[j])
{
//從有序數(shù)組最后一個(gè)數(shù)開始替換慷妙,直到替換到應(yīng)該放的位置咐旧,然后結(jié)束內(nèi)部循環(huán)伊约。
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;
}
}
}