数据结构——名词解释(八)

第八章 排序

  • 1、排序:排序就是重新排列表中的元素,使表中的元素满足关键字有序的过程。
  • 排序算法的稳定性:若待排序表中有两个元素Ri和Rj,其对应的关键字相同则keyi=keyj,且排序前Ri排在Rj前面,若在使用某一排序算法后Ri仍然排在Rj前面,则称这个排序算法稳定。
  • 内部排序:是指在排序期间元素全部在内存中进行排序。
  • 外部排序:是指在排序的过程中,元素无法全部同时存储在内存中,必须在排序的过程中根据要求不断的在内、外存之间进行移动排序。
  • 插入排序:其基本思想:对于每一个待排序的记录,按照其关键字大小插入前面已排序好的子序列中。在插入排序中,又可分为直接插入排序、折半插入排序、希尔排序。
  • 直接插入排序:每一次将待排序的记录按照关键字的大小插入到前面已排序好的子序列中,直到所有的记录插入完成为止。
  • 折半插入排序:折半插入排序是插入排序的一种优化,由于插入排序前面的已经是排序好的序列,而依次比较元素插入位置相对费时,采用折半查找来加快插入速度。
  • 希尔排序:又称为缩小增量排序,即把相隔某个“增量”的记录组成一个子表,对于各个子表分别进行直接插入排序,当整个表中的元素已经呈现“基本有序”时,再对全体记录进行一次直接插入排序。
  • 2、交换排序
  • 交换定义:是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。基于交换的排序算法有很多,如,冒泡排序、快速排序。
  • 冒泡排序基本思想:从后往前(从前往后)两两比较相邻元素的值,若为逆序,则交换它们直到序列比较完。
  • 快速排序基本思想:是基于分治法,在待排序中选取一个元素p作为枢轴(基准),通过每一趟的排序将待排序表划分为独立的两部分,使得p的前半部分为小于p的元素,而p的后半部分为大于p的部分,p则在前后两部中间,重复上述操作,直到序列有序为止。
  • 3、选择排序基本思想:每一趟在后面的n-i+1个待排序元素中选择关键字最小的元素,作为有序子序列的第i个元素,直到n-1趟完成,待排序元素只有一个时为止。选择排序又可分为,简单选择排序、堆排序。
  • 简单选择排序:和上面选择排序的基本思想一致。
  • 堆:n个关键字序列L[1….n]称为堆,当且仅当该序列满足L(i)>=L(2i)且L(i)>=L(2i+1)(或满足L(i)<=L(2i)且L(i)<=L(2i+1))时称为大根堆(小根堆)。
  • 堆排序:
  • 1)首先,将存放在L[1…n]中的n个元素构建成初始堆,也就是n个结点的完全二叉树。。
  • 2)然后,对于二叉树的子树进行不断的调整交换,使其满足大根堆或小根堆的特点。
  • 4、归并排序:是将两个或两个以上的有序表组合成一个新的有序表,假设待排序表中含有n个记录,则可将其视为n个有序的子表,子表的长度为1,然后将待排序记录两两归并,得到「n/2]个长度为2或1的有序表;然后继续两两进行归并,直到合并成一个长度为n的有序表为止,这样的称为2路归并排序。
  • 5、基数排序:是一种基于关键字各位的大小进行排序,是一种借助多关键字排序的思想对于单逻辑关键字进行排序的方法。

你可能感兴趣的:(数据结构,数据结构,排序算法,算法)