算法小练习

倒排:

a="shdjcdda"
p=""
count=0
for j in range(0,len(a)) :
   for i in range(0,len(a)) :
       if j<=i :
           t=a[i-count]
   count=count+1
   p+=t
print(p)

排序:

__author__ = ‘Administrator‘
a=[5,8,16,1,74,2,3,85,24]
t=[]
for i in range(0,len(a)) :
    for j in range(0,len(a)) :
        if a[i]<a[j]:
            t=a[i]
            a[i]=a[j]
            a[j]=t
print(a)

算重复:

__author__ = ‘Administrator‘
a=[5,3,16,5,74,5,3,85,24]
t=[]
for i in a :
    count=0
    for j in a :
        if i==j:
            count=count+1
    if count>1:
        if i not in t:
          t.append(i)
          print(i,count)
时间: 2024-10-13 05:00:53

算法小练习的相关文章

算法小思路(一)

合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素 并排序一般的思路都是创建一个更大数组C,刚好容纳两个数组的元素,先是一个while循环比较,将其中一个数组A比较完成,将另一个数组B中所有的小于前一个数组A的数及A中所有的数按顺序存入C中,再将剩下的数存入C中,空间复杂度高. 但是目前是这个数组: int a[]={2,4,6,8,10,0,0,0,0,0}; int b[]={1,3,5,7,9}; 解决思路是: void MergeArray(int a[]

算法小练#1 - Dany Yang

开始记录每周做过的算法题,这是第一周,新的开始 1021. 删除最外层的括号 题目要求如下: 有效括号字符串为空 ("")."(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接.例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串. 如果有效字符串 S 非空,且不存在将其拆分为 S

算法小论——第三章 又把新桃换旧符

笔记 这一章主要是渐进记号和高中数学的回忆. 几个标记: Θ – 上界和下界,绑定值,相当于f(n) ∈ [c1 * g(n), c2 * g(n)] Ω – 闭区间下界,最好运行时间,相当于 f(n) ∈ [c * g(n), ∞) ω – 开区间下界,最好运行时间,相当于 f(n) ∈ (c * g(n), ∞) Ο – 闭区间上界,最差运行时间,相当于 f(n) ∈ [0, c * g(n)] ο – 开区间上界,最差运行时间,相当于 f(n) ∈ [0, c * g(n)) 其余部分,高

密码算法小简介

1)      MD5/SHA MessageDigest是一个数据的数字指纹.即对一个任意长度的数据进行计算,产生一个唯一指纹号. MessageDigest的特性: A)     两个不同的数据,难以生成相同的指纹号 B)      对于指定的指纹号,难以逆向计算出原始数据 代表:MD5/SHA 2)    DES 单密钥算法,是信息的发送方采用密钥A进行数据加密,信息的接收方采用同一个密钥A进行数据解密. 单密钥算法是一个对称算法. 缺点:由于采用同一个密钥进行加密解密,在多用户的情况下,

分治算法小总结 x

分治算法的基本思想是将一个规模为 N 的问题分解为 K 个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解. ——以上来自百度百科. * 分治法解题的一般步骤:1 分解,将要解决的问题划分成若干规模较小的同类问题:- 二分法:区间对半分开2 求解,当子问题划分得足够小时,用较简单的方法解决:- 边界情况:可以直接操作3 合并,按原问题的要求,将子问题的解逐层合并构成原问题的解.- 合并操作:根据不同的题目来确定 其实这个题用冒泡排序做的,但用归并排序也能

莫队算法小总结 x

莫队这东西...orz 可用于解决一类可离线且在得到区间[l,r]的答案后,能在O(1)或O(log2n)得到区间[l,r+1]或[l−1,r]的答案的问题 我们先来看这样一个问题: 给出n个数字,m次询问,每次询问在区间[li,ri]之间任选两个数字相等的概率是多少.(n,q<=50000)(小z的袜子) 在区间[l,r]中,这个概率是: ∑vi=1C(2,f(i)) ----------------- C(2,r−l+1) (v表示数字值,f(i)表示数字i在区间内出现的次数) 由于没有加和

算法之经典排序算法小归纳

前言 数据结构和算法是写代码的基础.基本功很重要,所谓根基深度决定成长高度.以前没吃好的饭,总有一天要回来吃的.这段时间项目不忙,回来吃饭,决定花一段时间捋一捋数据结构和算法的基础知识. 正文     这篇博客简要总结了七个算法:冒泡排序,选择排序,插入排序,希尔排序,快速排序,归并排序和堆排序.本文所有的描述都是根据自己的理解手打的,为的是方便读懂,示例代码可以实现算法,但是不敢保证就是最优的.如描述内容有误,请指正. 好了开始吧.. 1.冒泡排序 从数组的一端开始两两比较,依次将当前最值移动

[莫队算法]小Z的袜子(hose)

Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬.你的任务便是告诉小Z,他有多大的概率抽到两只颜色相同的袜子.当然,小Z希望这个概率尽量高,所以他可能会询问多个(L,R)以方便自己选择

算法小计-列表排列

算法的简单的概念算法的概念:O()大O表示法O(): 程序大概运行的次数 1,时间复杂度:时间复杂度是用来估计算法运行时间的一个式子(单位).常见的时间复杂度(按效率排序)O(1)<O(logn)<O(n)<O(nlogn)<O(n**2)<O(n**2logn)<O(n**3)前四种较重要. 2,空间复杂度:时间复杂度:用来评估算法内存占用大小的一个式子 列表排序:排序low b三人组:冒泡排序每两个相邻的数比较,如果对比一个数比一个大,交换位置.def Bubble

Java算法小程序(2)

6.把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. a)使用ArrayList来存放元素 public class Solution { public static int minNumberArray(int[] array) { int min = array[0]; for(int i = 0; i < array.length; i++){ if(min > array[i]){ min = array[i]; } } return min; } public Ar