主题:排序算法讨论(加30分)
dorremon1992
[专家分:870] 发布于 2006-10-14 19:19:00
有没有什么除基本的一些排序外,
有没有什么稀奇,奇妙的排序算法(效率不一定要高)。
加30分[em5]
注意:是算法哦![em1]
回复列表 (共21个回复)
沙发
fxzxg [专家分:430] 发布于 2006-05-17 10:53:00
呵呵
用死循环,每次随机产生两个下标,然后交换,再判断数组是否已经有序,若是则退出死循环~~~~~~~~~~~~
板凳
dorremon1992 [专家分:870] 发布于 2006-05-19 19:40:00
[em10][em10][em10][em10]
3 楼
chiccs [专家分:40] 发布于 2006-05-20 10:01:00
快速冒泡
建立三个数组,读入数组1,然后随机取数组1中一个数。遍历数组,大于这个数归到数组3,
小于这个数的归到数组2。最后分别对数组2和数组3进行优化冒泡排序。
4 楼
济公二世 [专家分:200] 发布于 2006-08-20 18:19:00
选择排序
设数组中有N个数,取I=1,2,3,.....N-1,每次找出后N-I+1个数字中最小的与第1个数字交换位子。
5 楼
tl3shi [专家分:110] 发布于 2006-08-24 20:58:00
假设有一个数组!
var
a:array[1..n]of integer;
t,i,j:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then //升序(a[i]>a[j])
then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
for i:=1 to n do
write(a[i]);
end.
这好象叫什么选择排序哦!?
还有什么冒泡法哦!
6 楼
interegg [专家分:80] 发布于 2006-08-25 08:42:00
小弟不才,我个人认为堆排序也不错.
7 楼
tongsheng310369 [专家分:30] 发布于 2006-09-14 21:14:00
var
a:array[1..n]of integer;
t,i,j:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
for i:=1 to n do
write(a[i]);
end.
8 楼
yangxu37 [专家分:30] 发布于 2006-09-18 05:29:00
本人个人认为二分法排序也不错,不过还是最中意于快速排序.你要想要源程序,可以给我发邮件!
9 楼
实验小学 [专家分:30] 发布于 2006-09-27 20:27:00
手动排序法最好!!
[em20][em1][em9]
{你打好程序我就排好了,信不?}
大数据........
反正不用高效率!!![em1][em1][em1]
我来回复