JS排序之简单排序 [Toc] 冒泡排序 + 时间复杂度: O(n^2) + 稳定的排序算法 + 特点: 从后向前找,有序区数字一定全部小于(或大于)无序区数字 + 性能: 慢 + 优化: 双向冒泡(鸡尾酒排序) JavaScript function straightInsertionSort(a ...
分类:
编程语言 时间:
2020-03-20 22:11:43
阅读次数:
58
简单排序法:用i位置的数据,与n-i+1中所有的数据进行比较,获取最小的记录,并进行交换; 时间复杂度:O(n^2) 特点:数据交换,移动次数最少; 测试代码: public class SimpleSort { public static void main(String[] args) { // ...
分类:
编程语言 时间:
2020-02-13 17:03:06
阅读次数:
65
[toc] 1. 介绍 1.1 排序算法分类 1. 内部排序: 数据记录在内存中进行排序 2. 外部排序: 因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存 1.2 关于时间复杂度 1. 平方阶($O(n^2)$)排序 各类简单排序: 直接插入、直接选择和冒泡排序 2. 线性对 ...
分类:
编程语言 时间:
2020-02-09 16:45:15
阅读次数:
95
题目: 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。) 以这种方式修改数组后,返回数组可能的最大和。 示例 1: 输入:A = [4,2,3], K = 1输出:5解释 ...
分类:
编程语言 时间:
2020-01-29 23:58:09
阅读次数:
182
1.10.6 奇偶排列 我的读入一行方式很奇怪,应该只能用于这种给定长度的数组了(急需补习...) include include include include include using namespace std; struct c{ char s[15]; int age; int num; ...
分类:
编程语言 时间:
2019-12-05 20:25:15
阅读次数:
201
各种排序算法所需辅助空间 1、 所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1); 2、 快速排序为O(logn ),为栈所需的辅助空间; 3、 归并排序所需辅助空间最多,其空间复杂度为O(n ); 4、链式基数排序需附设队列首尾指针,则空间复杂度为O(rd )。 ...
分类:
编程语言 时间:
2019-11-16 21:32:40
阅读次数:
74
冒泡排序 ①基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。 ②算法描述: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来 ...
分类:
编程语言 时间:
2019-11-12 20:19:16
阅读次数:
89
PAT甲级1012题解——选择一种合适数据存储方式能使题目变得更简单 ...
分类:
其他好文 时间:
2019-10-13 15:25:25
阅读次数:
65
排序是数据处理中十分常见的操作,现代高级语言都有现成的n种排序算法。但了解它们的代码,对计算机思维有帮助。 简单选择排序 每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 无论数组原始排列如何,比较次数都不变;变的是交换次数。完全有序 ...
分类:
编程语言 时间:
2019-10-03 22:21:44
阅读次数:
119
1.简述 快速排序是一种排序执行效率很高的排序算法,它利用分治法来对待排序序列进行分治排序,它的思想主要是通过一趟排序将待排记录分隔成独立的两部分,其中的一部分比关键字小,后面一部分比关键字大,然后再对这前后的两部分分别采用这种方式进行排序,通过递归的运算最终达到整个序列有序,下面我们简单进行阐述。 ...
分类:
编程语言 时间:
2019-09-02 19:14:46
阅读次数:
90