葱丁

一组无序的自然数集合,由0,1,2... ...,n的数字和一个的数字X(X>=0 && X<=n)组成,请从集合中找出这个重复数字X。

a = input()
b = a.split(" ")
c = []
for i in b:
    for j in c:
        if i == j:
            print (i)
    c.append(i)

指针排序

def sort_list(a):
    first = 0
    second = 1
    while first < len(a)-1:
        if a[first] > a[second]:
            temp = a[first]
            a[first] = a[second]
            a[second] = temp
            if first>0:
                first -= 1
                second -= 1
        else:
            first += 1
            second += 1
    return a

a = list(map(int,input().split(" ")))
print (sort_list(a))

二分查找

def find_num(a,b):
    first = 0
    end = len(a)
    num = (first+end)//2
    while num!=first and num!=end:
        num = (first+end)//2
        print(num, first, end)
        if int(b) < int(a[num]):
            end = num
        else:
            first = num
        num = (first+end)//2
        print(num, first, end)
    if a[num] == b:
        print(b)
    else:
        print("not exist!")

a = [1, 3, 4, 6, 8, 9]
b = 2
find_num(a,b)

递归查找

def find_num(a,b):
    print(a)
    if len(a)==1:
        if a[0]==b:
            print("Find!")
            return
        else:
            print("Not find!")
            return
    else:
        num = len(a)//2
        if a[num] == b:
            print("Find!")
            return a[num]
        elif a[num]<b:
            c = find_num(a[num:],b)
            return c
        else:
            c = find_num(a[0:num],b)
            return c

a = [1, 3, 4, 6, 8, 9]
b = 1
c=find_num(a,b)
print(c)

二叉树插入和中序输出

class Tree():
    def __init__(self, value):
        self.root = value
        self.left = None
        self.right = None

    def insert(self, value):
        self.insert_node(self,value)
        
    def insert_node(self, root_node, v):
        if v < root_node.root:
            if root_node.left == None:
                root_node.left = Tree(v)
            else:
                self.insert_node(root_node.left, v)
        else: 
            if root_node.right == None:
                root_node.right = Tree(v)
            else:
                self.insert_node(root_node.right, v)
                
result = []
def print_tree(node):
    if node.left != None:
        print_tree(node.left)
    result.append(node.root)
    if node.right != None:
        print_tree(node.right)
        
n1 = Tree(5)
n1.insert(7)
n1.insert(3)
n1.insert(1)

print(n1.root,n1.left.root,n1.right.root)
print(n1.left.root,n1.left.left.root,n1.left.right)
print_tree(n1)
print(result)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,883评论 0 2
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,239评论 0 10
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 11,401评论 0 13
  • 这个周末是今年在深圳过的最后的一个周末了,下周就要回老家陪爸爸妈妈过年了,每次到了这个时候就很兴奋,在外一年了,留...
    大力说阅读 2,372评论 0 1
  • 刚好有几天假期,刚好在离长白山只有200多公里距离的吉林,于是,和同事相约,慕名去爬长白山——雪山飞狐的拍摄地,也...
    隆在天涯阅读 4,761评论 3 5

友情链接更多精彩内容