Windows mobile 排序算法

Windows mobile 排序算法,windows-mobile,sorting,image-processing,Windows Mobile,Sorting,Image Processing,我有一个链表,其中包含一组图像的散列值。我计划运行一个简单但非常快速的排序,到目前为止,我只能使用其中的两个,合并排序和快速排序 我的快速排序实现似乎出了问题,花了15秒(约15秒)的时间对10多张图像进行排序。合并排序似乎工作正常,但似乎没有那么快(大约3秒) 任何其他建议也可以 注:我正在为windows mobile构建一个图像查看器,我对该应用程序的主要标准是速度,但我需要一个排序算法,用于根据图像的范围对比度对图像进行排序。(这只是一个实验) 任何其他输入都会非常有用。使用排序列表在插

我有一个链表,其中包含一组图像的散列值。我计划运行一个简单但非常快速的排序,到目前为止,我只能使用其中的两个,合并排序和快速排序

我的快速排序实现似乎出了问题,花了15秒(约15秒)的时间对10多张图像进行排序。合并排序似乎工作正常,但似乎没有那么快(大约3秒)

任何其他建议也可以

注:我正在为windows mobile构建一个图像查看器,我对该应用程序的主要标准是速度,但我需要一个排序算法,用于根据图像的范围对比度对图像进行排序。(这只是一个实验)


任何其他输入都会非常有用。

使用排序列表在插入时将图像放置在正确的位置如何?找到插入点仍然需要花费成本,但可能更方便用户,例如,如果用户从图片列表中手动选择,则插入时间可以稍长一点。

使用排序列表在插入时将图像放置在正确的位置如何?您仍然需要花费查找插入点的费用,但这可能更方便用户,例如,如果用户从图片列表中手动选择,则插入时间可以稍长一些。

请注意,快速排序需要在恒定时间O(1)内访问数组中的任意元素才能快速工作。链表需要O(n).

注意,快速排序需要在恒定时间O(1)内访问数组中的任意元素才能快速工作。链表取O(n).

有多少个图像?对于一个合理的数字,您不应该为这两种算法花费15秒。是否有可能在每次需要该值时都重新计算每个图像的对比度级别?无论是快速排序还是合并排序,都需要进行大量的重新计算。听起来你在排序过程中复制了大量数据——排序一对图像,然后在排序算法完成后移动图像怎么样?我只在新图像添加到文件夹中时重新计算对比度,而这也只是新图像的对比度。在第一次运行时,计算对比度,然后将值散列并标记到我正在排序的每个图像。我猜我的排序实现在某个地方出了问题……有多少图像?对于一个合理的数字,您不应该为这两种算法花费15秒。是否有可能在每次需要该值时都重新计算每个图像的对比度级别?无论是快速排序还是合并排序,都需要进行大量的重新计算。听起来你在排序过程中复制了大量数据——排序一对图像,然后在排序算法完成后移动图像怎么样?我只在新图像添加到文件夹中时重新计算对比度,而这也只是新图像的对比度。在第一次运行时,计算对比度,然后将值散列并标记到我正在排序的每个图像。我猜我的排序实现在某个地方出了问题……这并不能解释为什么算法在这么小的n下速度如此之慢,但仍然是一个很好的观点。我同意,但我的链表是双端的,我通常从添加的新图像或列表中的中间元素开始(以前按文件名排序)(我知道这不重要)我刚刚意识到,即使是双端链表也需要O(n),这并不能解释为什么算法在这么小的n下会这么慢,但这仍然是一个很好的观点。我同意,但我的链表是双端的,我通常从添加的新图像或列表中的中间元素开始(之前按文件名排序(我知道这不重要))刚刚意识到即使是双端链表也需要O(n),谢谢。嗯……插入排序似乎是一个不错的选择,我现在还没有想到手动方法,但那是以后的。谢谢。嗯……插入排序似乎是一个不错的选择,我现在还没有想到手动方法,但那是以后的。谢谢