戴璞微的学习之路

简单点!做事的动机简单点

快速排序

概述快速排序和归并排序一样也是分而治之策略的应用,基本思路是在数组中选取一个主元,以它为标准,遍历数组把小于它的数放在右边,大于它的数放在左边。递归上述过程直至有序。选主元选主元与划分子集这两个问题关乎快速排序的效率问题。选主元有很多方式,比如直接那第一个数作主元,那么当数组基本有序时那么时间复杂...

2017-09-24 21:28:59

阅读数:1418

评论数:0

递归求序列最大最小值

这学期总算开了算法课了,不得不吐槽,大四上学期开这课,时间很尴尬。不多说了,第一节课老师留了道题,要求在一个递归函数里求序列的最大最小值。算法思路: 1)如果数组长度为1,则最大值与最小值相等 2)如果数组长度为2,则最大值与最小值各位其中一个。 3)如果数组长度大于2,那么采用二分策略,递...

2017-08-24 16:45:20

阅读数:1492

评论数:0

快速排序

解题思路: 1)设k=a[0], 将k挪到适当位置,使得比k小的元素都在k左边,比k大的元素都在k右边,和k相等的,不关心在k左右出现均可 (O(n)时间完成) 2) 把k左边的部分快速排序 3) 把k右边的部分快速排序Java代码如下:import java.util.Random; im...

2017-02-27 18:22:54

阅读数:536

评论数:0

求排列的逆序数

描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。现在,给你一个N个元素的序列,请你判断出它的逆序数是多少。比如 1 3 2 的逆序数就是1。输入 第一行输入一个整数T表示测试数据的组数(1<...

2017-02-26 21:51:44

阅读数:396

评论数:0

归并排序

归并排序的基本思路: 1) 把前一半排序 2) 把后一半排序 3) 把两半归并到一个新的有序数组,然后再拷贝回原数组,排序完成。 Java代码如下:import java.util.Scanner;public class Main { public static v...

2017-02-26 20:07:22

阅读数:310

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭