Java学习--排序算法之插入法排序
程序员文章站
2022-05-26 22:25:51
...
算法策略:按顺序读入数组内的元素,从后往前的与已有元素比较大小,插入到前一位比自己小并且后一位比自己小的位置。
数据结构:常量、变量和数组;
控制结构:顺序结构、有界循环结构和条件循环结构。
算法流程图:
程序设计代码:
public class Sort {
public static void main(String[] args) {
// TODO Auto-generated method stub
//建立一个数组
int[] array = {10,12,58,61,16,15,25,36,37,38,48,59,68,69,78,1};
//建立一重循环,可以从头到尾去遍历每一个元素
for (int i = 1; i < array.length;i++)
{
//将当前的元素的值赋值给key,记录当地元素的值,以便与前边的元素进行比较大小
int key = array[i];
//定义当前元素下标的前一位元素的下标
int j = i - 1;
//建立循环,比较当前元素与前边元素的值
while(j>=0 && array[j]>key)
{
//因为当前元素比前一位元素小,所以把前边一位元素的值赋予后边一位,即是将该元素的位置后移一位
array[j+1] = array[j];
//将下标数字减一,以便比较当前元素和前边两位的大小
j--;
}
//当前元素比前边元素大,跳出循环,将当前元素的值赋值给该位置的元素,即是将该元素安插在当前位置
array[j+1] = key;
}
//遍历数组,输出数组各元素
for(int i = 0;i<array.length;i++)
{
System.out.print(array[i] + " ");
}
}
}