这两周快到期末周了,课业有点重,就决定好好写一下比较基础的(但我也弄不太明白的)排序算法,这篇是插入排序的算法,要是今天能把其他作业忙完,我就再整一个......
插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。(听搞竞赛的学长说复杂度很高,最坏情况下是O(N^2)但作为萌新,这是我写的最快的排序算法了)。
它的基本思想是:
在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序。(来自度娘:插入排序_百度百科)
插入排序(以从小到大排序为例,下面直接上代码):
C语言版:
试验了几组数据,都没什么问题。如果代码有问题的话,欢迎在评论区指出,谢谢