设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1998|回复: 5
打印 上一主题 下一主题

a few concetps about sorting algorithms and questions

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 01:27:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
A few concetps about sorting algorithms and questions
A sorting algorithm is stable if whenever there are two
records R and S with the same key and with R appearing
before S in the original list, R will appear before
S in the sorted list. For example:
(1, 2), (1, 4) --> sorting algo which gives
(1, 2) (1, 4) is stale;
(1, 2), (1, 4) --> sorting algo which gives
(1, 4) (1, 2) is not stale.
A sorting algorithm is in place if only O(1) extra memory is
needed beyond the items being sorted. Comments: when define
the term in place, a book I read said
only O(1) or O(lgn) extra memory is needed.
Let us stick with the first definition: only O(1) memory is allowed
for in place algorithm.
Under these classifications and standard implementations (e.g.,
a not standard implementation of bubble sort can use as such
memory as the coder wants):
bubble, insertion, and merge are stable;
heap and quick are unstable.
bubble, insertion and heap are in place;
merge is not in place.
Q1: Is quick sort considered to be in place? Assume that we use O(lgn)
stack length for quicksort, such as the following implementation:
void quicksort(int* a, int p, int r)
{
while(p<r)
{
int q = partition(a, p, r);
// only sort the smaller part
if(q-p<r-q)
{
quicksort(a, p, q-1);
}
else
{
quicksort(a, q+1, r);
}
}
}

Q2: Is there a stable and in place sorting algorithm (based
on comparsion)?
2#
发表于 2009-11-3 01:27:48 | 只看该作者
帅哥!不会说中文吗?
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 01:27:50 | 只看该作者
话说回来,HJin的E语很好》》》
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 01:27:50 | 只看该作者
Q1:
任何非稳定排序都可以转化为稳定排序的,只是看时空代价多少,我想lgn似乎不行吧,没验证,我想快速的话,nlgn是可以的。时间上,就多了一次比较。

Q2:
nlgn的,没有。不额外处理的话。
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 01:27:51 | 只看该作者
以下是引用aipb2007在2007-9-23 11:52:19的发言:

Q1:
任何非稳定排序都可以转化为稳定排序的,只是看时空代价多少,我想lgn似乎不行吧,没验证,我想快速的话,nlgn是可以的。时间上,就多了一次比较。

Q2:
nlgn的,没有。不额外处理的话。


Are there proofs for your statements?
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 01:27:52 | 只看该作者
自己想的!

因为稳定与否就是因为相同元素的原始顺序问题。加一个附属值(下标序)在元素相同时多判断一次。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 14:39 , Processed in 0.089462 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表