是插入排序 程序在这了 书上的 我有点看不太明白 请高手把Sort方法里面的语句给我详细解释一下(最好是每句都解释下) 尤其是那个while循环 嘿嘿 我是初学者 大家别嫌麻烦啊 毕竟算法也不长 主要是那个Sort方法 和While循环里面的 算法如下:public class sorter{ public void Sort(int [] list){ for(int i=1;i<list.length;i++){ int t = list[i] ; int j = i ; while( (j>0) && (list[j-1]>t) ){ list[j] = list[j-1]; --j; } list[j]=t; } } }Main方法我就不写了 请高手给我把上面的详细解释一下 灰常感鸡
public void Sort(int [] list){ //传入参数--int型的数组 for(int i=1;i<list.length;i++){//当i小于数组的长度时执行循环 int t = list[i] ;//把下标为i的数组元素赋值给t int j = i ;//把下标i赋值给j //当j>0并且下标为i-1的数组元素小于下标为i的数组元素时执行循环 while( (j>0) && (list[j-1]>t) ){ //即如果list[j-1]>t把大的数组元素与小的调换位置 list[j] = list[j-1]; --j;//再比较下一个 } list[j]=t;//即如果list[j-1]<t,i下标不变 } }
插入排序算法: 1.从有序数列和无序数列{a2,a3,…,an}开始进行排序; 2.处理第i个元素时(i=2,3,…,n) , 数列{a1,a2,…,ai-1}是已有序的,而数列{ai,ai+1,…,an}是无序的。用ai与ai-1,a i-2,…,a1进行比较,找出合适的位置将ai插入; 3.重复第二步,共进行n-1次插入处理,数列全部有序。