摘要:
基本思路 先默认未排序区首个元素为最小,然后从后面的元素中挑出最小的元素,与这个元素交换,直至循环完成。 算法代码 算法分析 从i个记录中挑选最小记录需要比较i-1次。 第i(i=0~n-2)趟从n-i记录中挑选最小记录需要比较n-i-1。 对 n 个记录进行简单选择排序,所需进行的关键字的比较次数 阅读全文
摘要:
基本思想 每趟使表的第1个元素放入适当位置(归位),并且左边的元素小于这个元素,右面的元素大于这个元素,将表一分为二,对子表按递归方式继续这种划分,直至划分的子表长为0或1(递归出口)。 快速排序递归树 算法代码 算法分析 最好情况: 此时时间复杂度为O(nlog2n),空间复杂度为O(log2n) 阅读全文
摘要:
基本思路 希尔排序也是一种插入排序,又称缩小增量排序,在效率上教其他插入排序有较大的改进。 ① d=n/2 ②将排序序列分为d个组,在各组内进行直接插入排序 ③递减d=d/2,重复② ,直到d=1 算法最后一趟对所有数据进行了直接插入排序,所以结果一定是正确的。 它的基本思想是:先将整个待排记录序列 阅读全文
摘要:
直接插入排序 基本思路 一趟直接插入排序:在有序区中插入R[i]的过程。 算法代码 算法分析 折半插入排序 基本思路 直接插入排序,当有序区元素太多时,在有序区中寻找插入位置可能比较的次数太多,采用折半插入法,即折半查找到要插入的位置,加快了查找效率,但是要移动的元素仍然和直接插入排序的相同,仅仅提 阅读全文