对于快速稳定的指针数组,哪种算法是正确的?

Mar*_*unu 1 delphi sorting algorithm

我有以下数据结构,我想快速(明显)和稳定地对其进行排序。您认为哪种算法合适?

type
  PSuperListItem = ^TSuperListItem;
  TSuperListItem = record
    SubItems  : array of String;
    Marked    : Boolean;
    ImageList : Byte;
    ImageIndex: Integer;
    Data      : Pointer;
  end;

  TSuperListItems = array of PSuperListItem;

var
  Items: TSuperListItems; 
Run Code Online (Sandbox Code Playgroud)

我在这里发现只有插入、冒泡和合并排序算法是稳定的。我知道合并排序用于对链表进行排序。对于其他两种算法我一无所知,但我有一种奇怪的感觉,它们速度较慢。所以我不知道该使用哪种算法。

MBo*_*MBo 5

我知道合并排序是为了对链表进行排序

这不是真的。Mergesort 适用于链表和数组。

是的,合并排序比冒泡排序和插入排序快,对于上述排序,它的复杂度为 O(NlogN) 与 O(N^2)(但需要额外的内存)。所有这些信息都是可用的

你的数组的大小是多少?复杂性问题真的重要吗?