logo
预览版
标准版
您当前访问的是 喵宅苑 MewoGarden × 技术宅II 预览版网页,若要正常使用功能请戳我前往标准版
帖子对应的标准版页面请点击帖子下方[→标准版]按钮
汝欠咱的一生

快排问题,对链表中的int 型数据排序,写了,#22x。老是出错。

求介绍一下。我应该是L->next->next->……然后有点乱了……我得捋一捋。

还有就是链表中的 char型数据。字母表排序。#10x。给指针数组跪了……也是老错。

typedef struct Node

{

【查看更多内容请登录哈】

Mr_Alex

啊 难道我已经被生活所同化了吗 怎么感觉算法之于我就像是异次元的东西 @42#

汝欠咱的一生

以解决。用冒泡排序。

而对于char。本来不想用strcmp。但是实在写不出了。只能调用它了。

刘巧弟

汝欠咱的一生 发表于 2013-4-2 22:53 【链接登录后可见】

我想对 其中的 L->f 和 L->i 进行快排。

如果每个节点的数据是多维的 怎么定义comparable?

刘巧弟

对链表进行sort本来就很蛋疼 如果你练玩了quick sort可以试试merge sort

jimsshom

汝欠咱的一生 发表于 2013-4-2 23:05 【链接登录后可见】

确实想用快排。但想想冒泡 其实也挺适用于链表。

细想一下也是可以的,轴点用第一个元素也ok的,可能就是效果没有取中点的好,不过也只是统计学上来说差点。

然后每次递归都是将一个链表拆成两个链表和一个单节点再连接成一个链表就

【查看更多内容请登录哈】

foodszhu

本帖最后由 foodszhu 于 2013-4-2 23:15 编辑

如果不介意多占点空间。。。你可以先把链表拷贝到一个数组里。。。然后再拿这个数组进行快速排序。。。标准库<stdlib.h>中提供了一个快排函数,qsort,你只要写一个比较函数int cmp(const void*a, c

【查看更多内容请登录哈】

汝欠咱的一生

jimsshom 发表于 2013-4-2 23:03 【链接登录后可见】

我没记错的话快速排序好像是每次找出中间元素作轴点的吧,对于链表来说不适用吧。。。

是指的”比较快速的 ...

确实想用快排。但想想冒泡 其实也挺适用于链表。

jimsshom

我没记错的话快速排序好像是每次找出中间元素作轴点的吧,对于链表来说不适用吧。。。

是指的”比较快速的排序“而不是“快速排序算法”吧?

汝欠咱的一生

foodszhu 发表于 2013-4-2 22:52 【链接登录后可见】

这到底是快排还是链表排序啊。。。链表的话就是顺序排序了。。。

我想对 其中的 L->f 和 L->i 进行快排。

foodszhu

这到底是快排还是链表排序啊。。。链表的话就是顺序排序了。。。