自己怎么做百度网站,大连网站推广怎么收费,租号网站是怎么做的,网页源码app时间复杂度是在一个算法流程中#xff0c;常数操作的数量级指标。#xff08;最差情况下的算法表现#xff09;
比较两个算法的优劣#xff0c;在足够的空间下#xff0c;看时间复杂度指标#xff0c;若相同#xff0c;需要在大数据运行下来判断两个算法的“常数项指标…时间复杂度是在一个算法流程中常数操作的数量级指标。最差情况下的算法表现
比较两个算法的优劣在足够的空间下看时间复杂度指标若相同需要在大数据运行下来判断两个算法的“常数项指标”。
选择排序每次循环将待排序的所有数中最小数放到这些数开头位置依次循环即可。
冒泡排序每次循环通过邻近位置交换将所有待排序数中最大数交换至数组末尾位置依次循环即可。 异或
异或其实相当于无进位相加并且异或操作满足结合律和交换律。
通过异或操作完成两个变量值交换
a a^b;
b a^b;
a a^b;
注意要求a和b指向的内存不同否则会出错将数值抹零。 Question 一个数组中已知只有一种数出现奇数次其余所有数都出现偶数次怎么找到出现奇数次的数如果有两个数奇数次其余数偶数次如何找到要求时间复杂度ON空间复杂度O1
1. 将所有数异或最后的值为要寻找的奇数。
2. 将所有数异或得到a^b的值又因为a!b那么a^b不等于0那么ca^bc一定有一位不等于0a,b在该位上不一样那么将该位上不为1的数全部异或得到a,b中的一位再将c异或该数得到a,b中的另一个数。
使用下方代码可以找到c中最右边的1位置。
rightone c(~c1) //提取出c最右处的1 插入排序时间复杂度ON^2 空间复杂度O1
1. 保证0~0有序
2. 保证0~1有序若无序则交换
3. 依次下去如果无序就将该数与前数交换直到有序为止。 二分查找
1. 有序数组中找某个数是否存在。OlogN
2. 有序数组找到大于等于某个数最左侧位置
一直二分到结束找到大于等于num的最小位置即可。
3. 局部最小值
一个无序数组中但是任何两个相邻数不等找到一个极小值。
3.1. 判断0位置是否局部最小若是直接返回。
3.2. 判断N-1位置是否局部最小若是直接返回。
3.3. 这时0~N-1之间一定存在局部最小则取中点位置M若为极小值返回若不是如果MM-1那么0~M之间存在局部最小一直二分即可找到。