第三题:插入排序

Posted 蚂蚁伙记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三题:插入排序相关的知识,希望对你有一定的参考价值。

    插入排序(英语: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<sortList.length;i++){

 int j=i-1;

 if (sortList[j]>sortList[i]){

tmpValue=sortList[i];

while(j>=0 && tmpValue<sortList[j]){

sortList[j+1]= sortList[j];

j--;

}

sortList[j + 1] = tmpValue;

 }

 }

}

测试:

int sortList[] = {6,3,8,7,2,4,9,1,0,5};

inserTionSort(sortList);

for(int i=0;i<sortList.length;i++){

 System.out.printf("%d,",sortList[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<len;i++){

int j=i-1;

if (sortList[i]<sortList[j]) {

tmpValue=sortList[i];

while (j>=0 && tmpValue<sortList[j]){

sortList[j+1]=sortList[j];

j--;

}

            sortList[j+1]=tmpValue;

}

}

}

测试

int sortList[10]={6,3,8,7,2,4,9,1,0,5};

int len=sizeof(sortList) / sizeof(int);

inserTionSort(sortList,len);

for(int i=0;i<len;i++){

 printf("%d,",sortList[i]);

}

输出结果:0,1,2,3,4,5,6,7,8,9,

python 编写:

def inserTionSort(sortList):
sortLen=len(sortList)
for i in range(1,sortLen):
j=i-1
       if (sortList[j]>sortList[i]):
tmpValue=sortList[i]
while( j>=0 and sortList[j]>tmpValue):
sortList[j+1]=sortList[j]
j=j-1
           sortList[j + 1] = tmpValue
sortList=[6,3,8,7,2,4,9,1,0,5]
inserTionSort(sortList)
for i in range(0,len(sortList)):
print(sortList[i],end=',')

输出结果:0,1,2,3,4,5,6,7,8,9,


今天就到这了,明天继续,希望可以坚下来!加油 ! KONG!

以上是关于第三题:插入排序的主要内容,如果未能解决你的问题,请参考以下文章

每日刷题记录

2021.9.8 华为笔试题第三题

20160317第三题

《软件测试》课程实验2第三题

可信考试第三题-20220722

LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三:两次优化