美文网首页
2.常见算法的时间复杂度

2.常见算法的时间复杂度

作者: 秦萍健 | 来源:发表于2017-08-21 18:46 被阅读42次

一.冒泡算法
自己的理解:
对于n个数,
第1趟:比较n-1次才能找出最大(最小)的数字,
第2趟:比较n-2次,
第3趟:比较n-3次
... ...
第n-1趟: 比较1次。(完结)

特点:每趟比较都是相邻的两个数比较,然后把两个之中较大(升序)的放在后面,一趟完毕,最大的数字就被找出来了,下次不再比较。
对应的代码:

mian(){
   int a[10],i,j; 
   int t; //临时变量 
  
   /*输入10个数据*/ 
   for(i=0;i<10;i++){ scanf("%d",&a[i]); } 
   
   /*开始冒泡排序*/ 
   for(j=0;j<9;j++){ 
          for(i=0;i<9-j;i++) 
                 if(a[i]<a[i+1]) { 
                     /*相邻元素比较,交换大的放前面*/
                     t=a[i]; 
                     a[i]=a[i+1]; 
                     a[i+1]=t; 
                } 
          }
   } 
   //此处的9,实质是n-1.
 }

//时间复杂度O(n^2)



二.选择排序
原理:
选择排序很简单,他的步骤如下:

从左至右遍历,找到最小(大)的元素的下标,然后与第一个元素交换。
从剩余未排序元素中继续寻找最小(大)元素,然后与第二个元素进行交换。
以此类推,直到所有元素均排序完毕。

之所以称之为选择排序,是因为每一次遍历未排序的序列我们总是从中选择出最小的元素。

 public void sort(){ 
       for(int i = 0; i < arraytoSort.length - 1 ;  i++){
            int min = i;
            int temp;           
            //找出最小值的下标
            for(int j = i + 1;  j < arraytoSort.length ; j++){
                if(arraytoSort[j]  < arraytoSort[min]){
                    min = j;
                 }
            }
            //交换i与min的数组元素,下次+1不再比较了
            temp = arraytoSort[min];
            arraytoSort[min] = arraytoSort[i];
            arraytoSort[i] = temp;
        }
    }

//时间复杂度O(n^2).

三.常用数据结构的时间复杂度
干货分享:http://blog.csdn.net/stardhb/article/details/50453127

相关文章

  • 常见数据结构及排序算法时间空间复杂度

    时间复杂度趋势变化 常见数据结构复杂度 常见排序算法复杂度

  • 2.常见算法的时间复杂度

    一.冒泡算法自己的理解:对于n个数,第1趟:比较n-1次才能找出最大(最小)的数字,第2趟:比较n-2次,第3趟:...

  • 6_算法效率的度量

    1. 常见的时间复杂度 2. 算法分析示例 算法的最好情况与最坏情况:当算法在最坏情况下仍能满足需求时,可以推断,...

  • 常用算法Big-O复杂度介绍(时间和空间复杂度)

    常用函数Big-O示意图 常见数据结构操作时间、空间复杂度 常见排序算法时间、空间复杂度

  • 时间复杂度(斐波那契数列演变)

    常见的算法的时间复杂度分为:1,常数阶常数阶算法运行的次数是一个常数,如5、20、100。常数阶算法时间复杂度通常...

  • 算法简介

    程序和算法的时间复杂度 1.一个程序或算法的时间效率,也称“时间复杂度”,有时简称“复杂度” 2.复杂度常用大写字...

  • hash算法

    常见hash算法的原理 - duanxz - 博客园 排序算法时间复杂度、空间复杂度、稳定性比较 - 小黑皮的技术...

  • 算法(3)

    上两篇:算法(1)算法(2) 一、常见的时间复杂度 常用的时间复杂度.png 二、最坏情况和平均情况 最坏情况运行...

  • 堆排序

    常见排序算法复杂度:

  • o(logn^2)的冒泡、插入、选择排序

    最常见的排序算法时间复杂度的比较: 时间复杂度 如何衡量一个排序算法的指标 1.执行效率: 包括最好、最坏、平均的...

网友评论

      本文标题:2.常见算法的时间复杂度

      本文链接:https://www.haomeiwen.com/subject/dolhdxtx.html