排序算法问题论文摘要

排序算法问题论文摘要

问:帮忙翻译一段摘要,写论文急用啊,多谢了
  1. 答:Abstract: sorting is the important foundation puter programming, is one of the most important technology puter application, computer will produce many of the output is according to certain rules and orderly output. Here we from the Angle of data structure, a simple analysis of the insertion sort, partition, quick sorting and so on mon sort algorithm realization principle and the algorithm, the algorithm of time and efficiency, and the object oriented language Java some algorithms of code and simple example, through the example program operation and the analysis, some aspects from the different sort algorithm, the properties of our learning algorithm and the actual programming have helped.
问:快速排序算法原理与实现
  1. 答:快速排序的原理:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
    假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一躺快速排序。一躺快速排序的算法是:
    1)设置两个变量I、J,排序开始的时候I:=1,J:=N;
    2)以第一个数组元素作为关键数据,赋值给X,即X:=A[1];
    3)从J开始向前搜索,即由后开始向前搜索(J:=J-1),找到第一个小于X的值,两者交换;
    4)从I开始向后搜索,即由前开始向后搜索(I:=I+1),找到第一个大于X的值,两者交换;
    5)重复第3、4步,直到I=J。
    扩展资料
    与普通快排不同的是,关键数据是一段buffer,首先将之前和之后的M/2个元素读入buffer并对该buffer中的这些元素进行排序,然后从被排序数组的开头(或者结尾)读入下一个元素,假如这个元素小于buffer中最小的元素,把它写到最开头的空位上;假如这个元素大于buffer中最大的元素,则写到最后的空位上。
    否则把buffer中最大或者最小的元素写入数组,并把这个元素放在buffer里。保持最大值低于这些关键数据,最小值高于这些关键数据,从而避免对已经有序的中间的数据进行重排。完成后,数组的中间空位必然空出,把这个buffer写入数组中间空位。然后递归地对外部更小的部分,循环地对其他部分进行排序。
    参考资料来源:
  2. 答:快速排序的基本原理就是每一次把一个值放到它应该的位置上,然后序列被分为两部分,这个数前一部分后一部分,再对这两部分分别进行快速排序即可。
    如此递归下去,但是对于基本有序的数列,你就不要快排了,那样效率会很低。
    扩展资料:
    算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
    如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
    算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。
    形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。
    这些尝试包括库尔特·哥德尔、Jacques Herbrand和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数,阿隆佐·邱奇于1936年提出的λ演算,1936年Emil Leon Post的Formulation 1和艾伦·图灵1937年提出的图灵机。即使在当前,依然常有直觉想法难以定义为形式化算法的情况。
    参考资料:
  3. 答:1、设置两个变量I、J,排序开始的时候I:=1,J:=N;
    2、以第一个数组元素作为关键数据,赋值给X,即X:=A[1];
    3、从J开始向前搜索,即由后开始向前搜索(J:=J-1),找到第一个小于X的值,两者交换;
    4、从I开始向后搜索,即由前开始向后搜索(I:=I+1),找到第一个大于X的值,两者交换;
    5、重复第3、4步,直到I=J;
  4. 答:我也是初学者,可能回答的你会理解。
    举个例子 char s[]={d , x , a ,r , p , j , i }
    s[0] s[1] s[2] s[3] s[4] s[5] s[6]
    在要排序的几个字母里,选一个固定的字母(我习惯选择中间一个r)
    从左边第一个起依次向右直到 r处 找出第一个比r大的 s[1 ]x
    从右边最后一个起一次向左直到r处 找出第一个比r小的 s[6] i
    交换这两个,此时为 d i a r p j x
    接着上面的继续找 左边一直到r已经没有比它大的,那就停在r处
    右边找到 j 比r小 将 r与j j交换 d i a j p r x
    右边继续往前找 发现p比r小 交换 d i a j r p x
    此时数组已经全部被遍历
    r左边全都是比它小的 右边全是比它大的
    通过循环再对左右进行相同的过程
    思想明白了,代码就好写了吧???
    不知道讲没讲明白 不明白可以发邮件问我
    2468233107@
问:有关算法快速排序的问题
  1. 答:先说一下快速排序中最好的排序情况,最好的情况下,每次进行一次分区,我们会把一个序列刚好分为几近相等的两个子序列,这个情况也每次递归调用的是时候也就刚好处理一半大小的子序列。这看起来其实就是一个完全二叉树,树的深度为 O(logn),所以需要做 O(logn) 次嵌套调用。但是在同一层次结构的两个程序调用中,不会处理为原来数列的相同部分。因此,程序调用的每一层次结构总共全部需要 O(n) 的时间。所以这个算法在最好情况下的时间复杂度为 O(nlogn)。
    但是将递减数据调用快速排序进行递增排序,是快速排序中情况最差的,你可以试想一下,假设每次分区后都出现子序列的长度一个为 1 一个为 n-1,这会导致我们的表达式变成:
    T(n) = O(n) + T(1) + T(n-1) = O(n) + T(n-1)
    这是时间复杂度就是 O(n²)。
  2. 答:面试时最基本的排序算法
排序算法问题论文摘要
下载Doc文档

猜你喜欢