web中如何实现插入排序
这篇文章主要为大家展示了“web中如何实现插入排序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“web中如何实现插入排序”这篇文章吧。
插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,插入排序和冒泡排序一样,也有一种优化算法,叫做拆半插入,下面为大家详细讲解一下插入排序。
算法步骤将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
动图演示实例
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中如何实现插入排序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。