这篇文章主要为大家展示了“web中如何实现插入排序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“web中如何实现插入排序”这篇文章吧。

插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入,下面为大家详细讲解一下插入排序。

算法步骤

将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

动图演示
插入排序简介插入排序简介
代码实现JavaScript

实例

functioninsertionSort(arr){varlen=arr.length;varpreIndex,current;for(vari=1;iwhile(preIndex>=0&&arr[preIndex]>current){arr[preIndex+1]=arr[preIndex];preIndex--;}arr[preIndex+1]=current;}returnarr;}Python

实例

definsertionSort(arr):foriinrange(len(arr)):preIndex=i-1current=arr[i]whilepreIndex>=0andarr[preIndex]>current:arr[preIndex+1]=arr[preIndex]preIndex-=1arr[preIndex+1]=currentreturnarrGo

实例

funcinsertionSort(arr[]int)[]int{fori:=rangearr{preIndex:=i-1current:=arr[i]forpreIndex>=0&&arr[preIndex]>current{arr[preIndex+1]=arr[preIndex]preIndex-=1}arr[preIndex+1]=current}returnarr}Java

实例

publicclassInsertSortimplementsIArraySort{@Overridepublicint[]sort(int[]sourceArray)throwsException{//对arr进行拷贝,不改变参数内容int[]arr=Arrays.copyOf(sourceArray,sourceArray.length);//从下标为1的元素开始选择合适的位置插入,因为下标为0的只有一个元素,默认是有序的for(inti=1;iwhile(j>0&&tmpif(j!=i){arr[j]=tmp;}}returnarr;}}PHP

实例

functioninsertionSort($arr){$len=count($arr);for($i=1;$i$len;$i++){$preIndex=$i-1;$current=$arr[$i];while($preIndex>=0&&$arr[$preIndex]>$current){$arr[$preIndex+1]=$arr[$preIndex];$preIndex--;}$arr[$preIndex+1]=$current;}return$arr;}C

实例

voidinsertion_sort(intarr[],intlen){inti,j,key;for(i=1;i=0)&&(arr[j]>key)){arr[j+1]=arr[j];j--;}arr[j+1]=key;}}C++

实例

voidinsertion_sort(intarr[],intlen){for(inti=1;iwhile((j>=0)&&(keyC#

实例

publicstaticvoidInsertSort(int[]array){for(inti=1;ifor(intj=i-1;j>=0;j--){if(array[j]>temp){array[j+1]=array[j];array[j]=temp;}elsebreak;}}}Swift

实例

foriin1..lettemp=arr[i]forjin(0..reversed(){ifarr[j]>temp{arr.swapAt(j,j+1)}}}

以上是“web中如何实现插入排序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!