Something About Python

原创 2012年03月24日 21:55:14

   前段时间心血来潮,看了点Python的东西,推荐两个比较好的学习Python的网站:Python简明教程以及byr论坛十大的帖子里推荐的一个网站:LcodeTHW

   现在准备把这些天看得东西码上来,总结一下,包括了二分查找,选择排序,冒泡排序,归并排序以及简单的0-1背包问题等。

         二分查找:(其中calls 是总共执行次数)

def bsearch(s,e,first,last,calls):
    print first,last,calls
    if(last-first)<2:
        return s[last]==e or s[first]==e
    mid = (first + last)/2
    if e== s[mid]:
        return True
    if e>s[mid]:
        return bsearch(s,e,mid+1,last,calls+1)
    return bsearch(s,e,first,mid-1,calls+1)


    选择排序O(n^2):

 

def selSort(s):
    for i in range(len(s)):
        print s
        index = i
        minvalue = s[i]
        for j in range(i+1,len(s)):
            if s[j]<minvalue:
                index = j
                minvalue = s[j]
        temp = s[i]
        s[i] = s[index]
        s[index] = temp
        

    return s


        冒泡排序O(n^2)

def bubbleSort(s):
    flag = 1
    for i in range(len(s)):
        if flag==0:
            break
        print s
        for j in range(len(s)-1):
            if s[j]>s[j+1]:
                temp = s[j]
                s[j] = s[j+1]
                s[j+1] = temp
                flag = 1
            else:
                flag = 0

    归并排序O(nlogn):典型的divide and conquer两个步骤

def merge(left,right):
    result = []
    i = 0
    j = 0
    while i<len(left) and j<len(right):
        if left[i] <= right[j]:
            result.append(left[i])
            i+=1
        else :
            
            result.append(right[j])
            j+=1
    while i < len(left):
        result.append(left[i])
        i+=1
    while j < len(right):
        result.append(right[j])
        j+=1
    return result


def mergeSort(s):
    print s
    if len(s)<2:
        return s
    mid = len(s)/2
    left = mergeSort(s[:mid])
    right = mergeSort(s[mid:])
    together = merge(left,right)
    print 'merged',together
    return together

   背包问题:简单的DP,空间换时间。

def fastMaxVal(w, v, i, aW, m):

    global numCalls
    numCalls += 1
    try: return m[(i, aW)]
    except KeyError:
        if i == 0:
            if w[i] <= aW:
                m[(i, aW)] = v[i]
                return v[i]
            else:
                m[(i, aW)] = 0
                return 0
        without_i = fastMaxVal(w, v, i-1, aW, m)
        if w[i] > aW:
            m[(i, aW)] = without_i
            return without_i
        else: with_i = v[i] + fastMaxVal(w, v, i-1, aW - w[i], m)
        res = max(with_i, without_i)
        m[(i, aW)] = res
        return res

完!

  

 

英文面试题目真实试题集合

个人信息方面的问题: 针对personal data   1. What’s yourname?   2. May I have yourname, please?   3. Are youM...
  • zhaoyazhi2129
  • zhaoyazhi2129
  • 2013年02月27日 19:31
  • 1339

安装DockerToolbox出现问题,无法使用

一、问题描述:安装过Docker Toolbox,卸载后,重新安装,无法正常使用,提示 Running pre-create checks... Error with pre-create chec...
  • u010389429
  • u010389429
  • 2016年07月15日 15:26
  • 9062

C#Windows 窗体设计-实现欢迎界面-显示About窗体-在托盘中写入应用程序图标

1. private void Form1_Load(object sender, EventArgs e) { //MessageBox.Show("将窗...
  • yayun0516
  • yayun0516
  • 2014年10月15日 09:03
  • 1696

something about tinyos

  • 2014年05月16日 22:49
  • 795KB
  • 下载

something about Compile and Link on Embedded Linux

1 , Compile 流程 2,The `##' preprocessing operator performs token pasting #define mypr...
  • jslywj
  • jslywj
  • 2013年11月06日 16:51
  • 657

something about Educational Codeforces Round 11

这场CF的E、F两题最近才补,拿来说说。比较有意思的是,官方题解给的都不是最优复杂度。。E. Different Subsets For All Tuples  这道题肯定是dp,我的做法是这样的。假...
  • squee_spoon
  • squee_spoon
  • 2016年06月27日 00:20
  • 159

Something about Compile error

A strange compile error! error :expected unqualified-id before ‘using’ It occurs When a class is d...
  • csdn_cinderella
  • csdn_cinderella
  • 2016年04月09日 14:46
  • 163

something about me

每当谈起自己的故事呢,经常会自以为曲折动人,坎坷万千,但并不想提及自己的故事,仅想谈谈自己的现在。 我是正在努力成为一名合格程序猿的人,对,现在看来,仅仅只祈求着合格,其实在报志愿的时候,我最钟爱的...
  • sinyusin
  • sinyusin
  • 2016年02月06日 10:40
  • 178

Something about Torrents.

List some important definitions about torrents. 关于种子文件 P2P 技术的一些概念解释。...
  • landstream
  • landstream
  • 2017年03月07日 10:07
  • 125

Something about software suspend (swsusp)

from: http://blog.chinaunix.net/uid-20585891-id-1919736.html Something about software suspend (swsu...
  • rex_nie
  • rex_nie
  • 2013年06月20日 14:14
  • 809
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Something About Python
举报原因:
原因补充:

(最多只允许输入30个字)