$arr=[8,3,1,2,5] #定义全局数组,用于冒泡排序
$arr1=[9,6,7,1,4] #定义全局数组,用于选择排序
$arr2=[10,25,7,2,5,1,30,28,21] #定义全局数组,用于插入排序
$temp=0 #全局变量,用于交换数字
#冒泡排序
puts "冒泡排序\n"
=begin
upto循环控制冒泡次数
downto循环控制每次比较的次数
=end
1.upto(4){ |i|
4.downto(i){|j| ($temp=$arr[j];$arr[j]=$arr[j-1];$arr[j-1]=$temp) if $arr[j]<$arr[j-1]}
}
#用,将每个元素连接起来进行输出
print $arr.join(","),"\n"
#选择排序
puts "\n选择排序\n"
=begin
外层upto循环选定每次待比较的元素
内层upto循环控制比较的元素
=end
0.upto(3){
|i| (i+1).upto(4){ |j|
($temp=$arr1[i];$arr1[i]=$arr1[j];$arr1[j]=$temp;) if $arr1[j]<$arr1[i]
}
}
print $arr1.join(","),"\n"
#插入排序
puts "\n插入排序\n"
=begin
本人觉得冒泡排序其实是所有排序的一个根本出发点。。。
无言选择几次,插入几次,最终都是将最小的数组长度-1个元素给放到最
前面就搞定了。。。当然插入排序是最难的,花了点时间
第一个upto循环控制比较的次数。。。
第二个upto循环开始比较,一旦发现比前面一个元素小,就停止此循环,同时记录这个元素用其下标,转向第三个upto循环依次向后挪位置就可以了,当然第一次挪位置后就要跳出来,不能再循环了。。。
=end
$num=0
$index=0
f=false
0.upto($arr2.length-1){
|i| (i+1).upto($arr2.length-1){
|j| (f=true;$num=$arr2[j];$index=j;break) if $arr2[j]<$arr2[i]
}
if f then
0.upto($index-1){
|n| ( ($index-1).downto(n){|m| $arr2[m+1]=$arr2[m] }; $arr2[n]=$num;break;) if $arr2[n]>$num
}
f=false
end
}
print $arr2.join(","),"\n"
分享到:
- 2008-04-21 09:41
- 浏览 835
- 评论(2)
- 论坛回复 / 浏览 (2 / 5204)
- 查看更多
相关推荐
对数字6606 5241 4215 5164 6224 3781 6536 4105 2587 2548 4641 2899 8124 6624 1042 5669 471 8165 9308 6514 7708 13 4697 4110 5899 2831 3024 957 2454等进行冒泡选择插入排序
第27周-第02章节-Python3.5-冒泡 选择 插入排序.avi
有C予以编写的冒泡选择以及插入排序3种排序方法
交换排序 选择排序 冒泡排序 插入排序
插入排序 冒泡排序 堆排序 基数排序 选择排序 快速排序的源码 java实现
选择排序、插入排序、冒泡排序以及快速排序和归并排序的C语言实现,绝对可用
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
采用c++描述了各种排序算法,包括选择排序 冒泡排序 插入排序 基数排序 快速排序 归并排序 。实验内容 1、创建排序类。 2、提供操作:选择排序、冒泡排序、插入排序、*基数排序、*快速排序、*归并排序。 3、*能够...
直接插入排序 冒泡排序 快速排序 直接选择排序 堆排序 二路归并排序 C#源代码 使用C#实现的数据结构中的排序算法
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
21、折半插入排序 22、21、折半插入排序 22、冒泡排序 21、折半插入排序 22、冒泡排序 23、快速排序 21、折半插入排序 22、冒泡排序 23、快速排序 24、简单选择排序 21、折半插入排序 22、冒泡排序 23、快速排序 24...
有一个模板类写出了快速排序,冒泡排序,插入排序,选择排序四种算法。用的是C++哦
C# 常用经典算法,选择排序 冒泡排序 快速排序 插入排序 希尔排序
关于c#的一些算法 选择排序 冒泡排序 快速排序 插入排序 希尔排序 归并排序 基数排序 计数排序。。。
插入排序,选择排序,基数排序,冒泡排序的C++实现
C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序的C语言实现,原创。
冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序源码实现,里面有详细讲解,对新手应该有帮助
详细介绍选择排序、冒泡排序、插入排序且有相应的代码分析
选择排序,冒泡排序,插入排序 基数排序,快速排序,归并排序