算法之时间复杂度

来源:互联网 发布:2015年双十一淘宝销售额 编辑:程序博客网 时间:2024/06/06 08:25

O(1)时间复杂度

    void swapTwoInts(int &a,int &b){        int temp = a;        a = b;        b = temp;    }

O(n)时间复杂度

int sum(int n ){    int ret = 0;    for(int i = 0; i <= n; i++)        ret += i;    return ret;}void reverse (String &s){    int n = s.size();    for(int i = 0; i < n/2 ;i++)    swap(s[i],s[n-1-i]);}

O(n^2)时间负责度
一般情况都是两次循环,其中内循环不是固定值

void selectionSor(int arr[],int n ){    for(int i = 0; i< n;i++){        int minIndex = i;        for(int j = i+1;j< n ;j++)        if(arr[j] < arr[minIndex])            minIndex = j;        swap(arr[i],arr[minIndex]);    }}

O(nlogn)时间复杂度

int binarySearch(int arr[],int n,int target){    int l =0, r = n-1;    while(l <=r){        int mid = l + (r-l)/2;        if(arr[mid] == target) return mid;        if(arr[mid] > target ) r = mid -1;        else l = mid + 1;    }    return -1;}

二分查找法的时间复杂度
在n个元素中寻找
在n/2个元素中寻找
.
.
.在1个元素中寻找

String intToString(int num){    string s = "";    while(num){        s+= '0' + num%10;        num/= 10;    }    reverse(s);    return s;}O(sqrt(n))bool isPrime(int n){    for (int x = 2; x*x <= n;x++)        if(n%x == 0)            return false;    return true;}
原创粉丝点击