|
看的东西比较混乱 今天趁午休时间把算法导论拿出来看(那是我的硬伤,嘿)
看到插入排序的那张截图 大意是插入排序就像把一副牌放入手中 不停的插入
大的放右边 小的放左边
突然有个灵感 我可以建立两个数组Temp(2),Arr(2)
乱序数组的每个元素都以 Temp数组的形式存在 Temp(1)=进入的元素 Temp(0),Temp(2) 并不初始化
Arr数组作为结果数组,Arr(1)中放入乱序数组的第一个数 Arr(0) 中放比他小的数 Arr(2)放比他大的数(Arr(0),Arr(2)是以Temp数组的形式)
乱序数组的第二个元素进来 同样以Temp数组形式出现 如果这个元素本身比乱序数组的第一个元素小就 Arr(0)=Temp(1) (上面讲过,第二个元素是以Temp数组的形式进入的,同样Temp(1)=进入的元素 0,2索引的不初始化)
这样第三个元素在进来.......所有的元素都遵循这样的规则
使用递归形成了
遍历一遍 就得出了顺序的数组(当然每次都有递归)
最后再递归取出(2次递归^^)就得到了顺序的排序
耗时方面 机子不行 就不测试了 有兴趣可以试试....不知道快还是慢
不知道这样的排序是否有名字? 主要利用的是嵌套数组,不知道嵌套数组是否有极限?
上附件:
代码在thisworkbook sheet1是测试用的数据
abc.zip
(483.16 KB, 下载次数: 69)
|
|