关于排序

世界上所有的问题最终都会归结为排序问题,所以排序算法在人工智能中的作用不言而喻。我们知道人类在做决策的时候通常会选择他认为最好的解决方案,比如当前最好的方案或者长期最好的方案。 而他所做决策的依据则是他当前的记忆也就是数据。当然由于环境的复杂性,人类在做决策时通常会进行综合考虑然后在选择一个性价比最高的方案。 但是不论这个解决方案有多复杂它最终都会变成增加或者减少细胞内某种离子的浓度,然后作用于人体肌肉细胞进行收缩或者舒张。

排序问题的核心是数据、是算法、是目标,也就是说排序是从当前数据集中选择一种可以快速达成某个目标的算法。

  1. 目标:最大、最小、最长、最短、最高、最低、最多、最少、最像(等于)、最平均、最合适、误差最小、回报率最高等。
  2. 数据:图文、声音、气味、味道、心跳等。
  3. 算法:冒泡排序、桶排序、选择排序、快速排序、递减排序、堆排序、树排序、随机排序、希尔排序等。

目前已知的排序算法有很多种,但是每种算法都有它的优劣,有的算法空间复杂度低但是时间复杂度高比如冒泡排序,有的算法时间复杂度低但是空间复杂度却很高比如桶排序。 所以在使用算法之前我们不仅要了解每个算法的优缺点通常还要根据数据的特点找到一种适合的算法。关于数据的特点我们通常只要有一个大概印象即可,所谓的大概也就是大概率上符合某一种规律,比如递增、递减、差异较大、比较平均、都是自然数等。 关于这个概率我们可以使用抽样法、局部平均法和数据类型等方法进行判断。

使用说明

  1. 所有的数组元素必须是数字,否则将无法运算。
  2. 利用系统生成的随机数组只有整数。
  3. 修改算法函数时,不能修改名称。