跳至主要內容
快速回忆十大排序

Java中Arrays.sort()

通过查看Arrays.sort() 的源码, 可以发现 Arrays.sort() 并不是简单的使用快排,而是根据要排序的长度选择不同的排序。 简单总结:


xlc520algorithmalgorithm大约 12 分钟
七大排序(代码+动图演示)

1.排序的概念及其运用

1.1排序的概念

排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次 序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排 序算法是稳定的;否则称为不稳定的。

稳定性的意义:在根据多种属性进行排序时会有巨大的意义。比如我们先对学生按照学号进行了排序,再对学生进行了按照成绩进行排序,此时学号和成绩成为了两种决定因素,如果我们在按照成绩进行排序时,所使用的算法是不具有稳定性的,那么在对成绩排序后,之前根据学号进行的排序就没有意义了,此时就会出现相同成绩,但是学号靠后的在前面,反之,如果我们选择的排序具有稳定性,那么成绩相同,学号靠前的应该在前面。

内部排序:数据元素全部放在内存中的排序。

外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不能在内外存之间移动数据的排序。一般数据是存储在磁盘中的。


xlc520algorithmalgorithm大约 32 分钟
牛客网-华为机试

HJ1 字符串最后一个单词的长度

描述

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)


xlc520algorithmalgorithm - 牛客华为算法排序转换查找大约 44 分钟
快速排序

一、简介

快速排序(Quick sort)是对冒泡排序的一种改进,是非常重要且应用比较广泛的一种高效率排序算法。

二、算法思路

快速排序是通过多次比较和交换来实现排序,在一趟排序中把将要排序的数据分成两个独立的部分,对这两部分进行排序使得其中一部分所有数据比另一部分都要小,然后继续递归排序这两部分,最终实现所有数据有序。


xlc520algorithmalgorithm排序大约 6 分钟
算法


xlc520algorithmalgorithm小于 1 分钟