欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Ruby实现插入排序算法及进阶的二路插入排序代码示例

程序员文章站 2022-03-14 07:49:28
基础 将一个记录插入到一个已经排序好的表中,以得到一个记录增一的有序表。并且最关键的一点就是它把比当前元素大的记录都往后移动,用以空出“自己”该插入的位置。当n-1趟插入...

基础
将一个记录插入到一个已经排序好的表中,以得到一个记录增一的有序表。并且最关键的一点就是它把比当前元素大的记录都往后移动,用以空出“自己”该插入的位置。当n-1趟插入完成后该记录就是有序序列。

刚开始写代码时,在x< tarray[j]处没有加to_i方法,出现了如下错误:

一开始我很困惑,便在输出了x.class,tarray[j].class,然而这两的输出都是fixnum。后来发现,ruby的array类和其他的不太一样,ruby中允许一个array对象中存储不同类型的元素,当a的一个元素赋值给x后,无法确定与x比较的a[i]是否是fixnum类型,所以报错,这只是我自己的理解。

进阶
2路插入排序基于折半插入排序:

相关标签: Ruby 排序