- 博客(5)
- 收藏
- 关注
原创 qsort函数运用及模拟qsort实现自定义排序函数bubbl_sort
/交换i++) {staging1++;staging2++;//趟数i++) {//每一趟的两两比较的下标j++) {//假设待排序的元素是升序//交换*/i < sz;i++) {//结构体testint age;//传过来要实现的参数//test.agereturn 0;代码拆解:代码可分为三个角度代码如下:这部分代码如果看懂了qsort函数的运用部分的话,直接把bubbl_sort函数看成是qsort函数进行了。
2023-12-04 13:35:33
482
原创 时空复杂度分析
eg: f(n)=3n^2+2n+2 只需要关注n^2就可以了,其余的全部忽略。一般来说,当看到循环中的变量增加或者减少的次数变化比较复杂时才考虑使用设t法。还是记住前提-->不管小项,eg:2^(t+1)这种,直接看成2^t就行。a*T(n/b):原始问题划分为n个规模为n/b的问题。O(n^d):调用一次函数消耗的时间/空间复杂度。确定最复杂的那一项代码(记住前提:小项不管)设t次终止,建立t与n的关系,反求出n。前提: 不要纠结小项!T(n)为原始问题大小为n。
2023-11-25 18:54:22
388
原创 冒泡排序操作及优化和另外一种实现思路
进行排序的思想:原因-->因为我们知道了该数组内存储的上限,此时只需要求出用户输入时的最大值max,例如成绩这类题目的上限为100,当我们求出了数组内的最大值后,直接来个两层 循环,利用最大值不断去减去1-100的数,当有一个值与我们数组的值对应后,就输出,该值就是该数组内所存储的最大值了。还有一种情况,不利用排序的方法,个人认为属于排序的另一种思想,适用于知道存在这个数值的上限,例如描述的成绩这类题目。注:仅用于记录学习记录和用于巩固,还有可补充的点请指教!
2023-11-23 19:14:01
391
原创 scanf(“%d\n“,&i)回车后不能正常输出问题
原因:\n 为空白字符,scanf()在读取数据时,会跳过一个或者多个空白字符,直到读取到非空白字符时按回车才会执行下一行语句,上图代码也是因为这个原因,才会在再次输入一个非空白字符数据时才会执行下一句输出语句。
2023-11-10 20:17:10
720
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人