插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
如对列表:6,3,8,7,2,4,9,1,0,5 进行插入排序
I=1下标1开始
0:==6,3,8,7,2,4,9,1,0,5
Start…….
1:==[3,6],8,7,2,4,9,1,0,5
2:==[3,6,8],7,2,4,9,1,0,5
3:==[3,6,7,8],2,4,9,1,0,5
4:==[2,3,6,7,8],4,9,1,0,5
5:==[2,3, 4,6,7,8],9,1,0,5
6:==[2,3, 4,6,7,8,9],1,0,5
7:==[1,2,3, 4,6,7,8,9],0,5
8:==[0,1,2,3, 4,6,7,8,9],5
9:==[0,1,2,3, 4, 5,6,7,8,9]
End…….
java 编写:
public static void inserTionSort(int[] sortList){
/*
* 插入排序
*/
int tmpValue=0;
for(int i =1;i
int j=i-1;
if (sortList[j]>sortList[i]){
tmpValue=sortList[i];
while(j>=0 && tmpValue
sortList[j+1]= sortList[j];
j--;
}
sortList[j + 1] = tmpValue;
}
}
}
测试:
int sortList[] = ;
inserTionSort(sortList);
for(int i=0;i
}
输出结果:0,1,2,3,4,5,6,7,8,9,
c++ 编写:
void inserTionSort(int sortList[],int len){
int tmpValue =0;
for(int i=1;i
int j=i-1;
if (sortList[i]
tmpValue=sortList[i];
while (j>=0 && tmpValue
sortList[j+1]=sortList[j];
j--;
}
sortList[j+1]=tmpValue;
}
}
}
测试
int sortList[10]=;
int len=sizeof(sortList) / sizeof(int);
inserTionSort(sortList,len);
for(int i=0;i
printf("%d,",sortList[i]);
}
输出结果:0,1,2,3,4,5,6,7,8,9,
python 编写:
definserTionSort(sortList):
sortLen=len(sortList)
foriinrange(1,sortLen):
j=i-1
if(sortList[j]>sortList[i]):
tmpValue=sortList[i]
while( j>=andsortList[j]>tmpValue):
sortList[j+1]=sortList[j]
j=j-1
sortList[j +1] = tmpValue
sortList=[6,3,8,7,2,4,9,1,,5]
inserTionSort(sortList)
foriinrange(,len(sortList)):
print(sortList[i],end=',')
输出结果:0,1,2,3,4,5,6,7,8,9,
今天就到这了,明天继续,希望可以坚下来!加油 ! KONG!
领取专属 10元无门槛券
私享最新 技术干货