欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 第四章 4.2 时间复杂度

第四章 4.2 时间复杂度

2024/10/24 13:58:48 来源:https://blog.csdn.net/tiao_tiao_hu/article/details/142375780  浏览:    关键词:第四章 4.2 时间复杂度

算法

数据结构与算法

算法与数据结构相互依存,例如,寻找数组的最大值,数组就是一种数据结构,寻找最大值的算法是依附于数组的。

时间复杂度

  • T(n):算法中基本操作的重复执行次数。

        i = 1;i= 2...... i=10;表示i重复执行赋值了10次,但每次不受数据量的影响,单独赋值。

存在一个函数f(n)和T(n)的走向大概一致,对此相比求极限等于一个常数,说明两者同阶无穷小,所以说f(n)和T(n)是同数量级函数。T(n) = O(f(n))。

  • 只考虑最高次幂就是与f(n)同量级的。

常见的时间复杂度

O(1)

O(1):没有循环体,因为每一个都直接赋值,赋值不会随着数据量的增大而改变速率,所以f(n)是一条直线,是一个常数。

o(log2n)

O(n)

O(nlog2n)

O(n²)

其他

排序算法

冒泡排序

public class test {public static void main(String[] args) {int[] arrlist = new int[]{4,7,8,6,1,2,5};maopao(arrlist);for (int i = 0; i < arrlist.length; i++) {System.out.println(arrlist[i]);}}private static void maopao(int[] arr){for (int i = 0; i < arr.length-1; i++) { //外层循环几次boolean flag = true;for (int j = i+1; j < arr.length; j++) {if (arr[i] > arr[j]) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;flag = false;}}if (flag) {break;}}}
}

 选择排序

从数组中选择最小元素,将它与数组的第一个元素交换位置。再从数组剩下的元素中选择出最小的元素,将它与数组的第二个元素交换位置。不断进行这样的操作,直到将整个数组排序。

private static void selectOrder(int[] arr){for (int i = 0; i < arr.length-1; i++) {int min = i;for (int j = i+1; j < arr.length; j++) {if (arr[j] < arr[min]) {min = j;}}int temp = arr[i];arr[i] = arr[min];arr[min] = temp;}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com