插入排序方法类

public void sort(int arr[]){

for(int i=1;i<arr.length;i++){
int insertVal=arr[i];
//insertVal是准备用于与前一个数比较的数
int index=i-1;
while(index>=0&&insertVal<arr[index])

{
//上面的判断思想是,先确认index在i-1过后大于等于0;
//让后让数组里的i 与 i-1 ,就是前后俩数去比较,现在是如果后面的数小与前面的数的情况

arr[index+1]=arr[index];
index--;

}
//如果前面while的条件不匹配,也就是说后面插入的数比前面一个大
arr[index+1]=insertVal;

}



}

 

算法思想:

①把数组里面的无序数中的第一个index=0的数,默认当做一个序列队伍;

②然后定义一个数insertVal,取出的值为index=0后面的一个数;

③将两者比较,

如果insertVal比最早的那个数大,那么就直接让这个数的index+1,那么就是直接排在比较数后面了;

如果insertVal比最早的那个数小,那么就先将最早的数的index先往后以一位,即+1,等数值也跟着定值后,index再减一;再将insertVal的index往左以一位,即-1,;这样就可以达到两个数从小到大交换位置排序。

 

以上叙述是简单说明下。