随笔分类 - 数据结构
摘要:插入排序思想 假设有一个int类型,数组长度为n的数组 1.我们要保证数组下标在0~0中有序排列,这是肯定的,在0~0中只有一个数字 2.保证数组下标在0~1中有序,我们要比较下标为0与下标为1的数字,若下标为1大于下标为0的数字,就进行交换 3.保证数组下标在0~2中有序,因为下标在0~1中已经有
阅读全文
摘要:冒泡排序思想: 假设有一个数组:int arr = {3,1,4,6,5} 第一趟 第一步:下标为0的数字与下标为1 的数字做对比,若下标为0的数字大于下标为1的数字,二者做交换 第二部:下标为1的数字与下标为2的数字做对比,若下标为1的数字大于下标为2的数字,二者做交换 。。。。。。直到最大的数字
阅读全文
摘要:选择排序思想: 假设有一个数组,int arr = {5,2,3,1;4} 第一步:从下标0-4中找到最小数字对应的下标,与下标为0的数字进行交换 第二步:从下标1-4中找到最小数字对应的下标,与下标为1的数字进行交换 。。。。。。 最后一步:数组中最大的两个下标对应的数字作比较,谁小就把谁放到前面
阅读全文
摘要:异或运算:相同为0,不同为1 口诀:无进位相加 异或运算的性质:①0^N==N N^N==0 ②异或运算满足交换律和结合律 练习一:如何不用额外变量交换两个数(A、B) int a = A; int b = B; int a = a^b; //A^B int b = a^b; //A^B^B = A
阅读全文
摘要:评估算法优劣的核心指标是什么? 1.时间复杂度(流程决定) 2.额外空间复杂度(流程决定) 3.常数项时间(实现细节决定) 何为常数时间的操作? 如果一个操作的执行时间不以具体样本量为转移,每次执行时间都是固定时间,这样的操作就是常数时间的操作。 例如:①在进行加法运算时,加法所用的时间与相加的两个
阅读全文