Turbo Sort Add problem to Todo list Problem code: TSORT
def heap_sort(ary):
n = len(ary) #
first = int(n / 2 - 1) #
for start in range(first, -1, -1): # 3~0 revese
max_heapify(ary, start, n - 1) # from start
for end in range(n - 1, 0, -1):
ary[end], ary[0] = ary[0], ary[end]
max_heapify(ary, 0, end - 1)
return ary def max_heapify(ary, start, end):
root = start
while True:
child = root * 2 + 1
if child > end:
break
if child + 1 <= end and ary[child] < ary[child + 1]:
child += 1
if ary[root] < ary[child]:
ary[root], ary[child] = ary[child], ary[root]
root = child
else:
break def main():
ary = [6, 5, 3, 1, 8, 7, 2, 4]
heap_sort(ary) print(ary) main()
//Py自带的两种算法,一个sorted(ary)不影响本身结构,可ary.sort()就影响了
def main():
# ary = [6, 5, 3, 1, 8, 7, 2, 4]
#heap_sort(ary) #print(ary) n = int(sys.stdin.readline())
ary = [] # 申明一个数组 while n > 0:
ary.append(int(raw_input())) # 输入的排成数组
n -= 1 ary.sort() #自带两种排序算法,.sort是真是变,sorter()是表面变
print '\n'.join(map(str, ary)) # map函数就是一个映射/转换,把list转换成string main()
学习
挑战了一把当年讳莫如深的堆排,现在理解其实不难,就是一个使用二叉来减少比较次数的快速排序
各种py排序算法
http://wuchong.me/blog/2014/02/09/algorithm-sort-summary/
熟悉了通过查看文档来学习使用python的相关函数
熟悉调用其自生的函数库
Turbo Sort Add problem to Todo list Problem code: TSORT的更多相关文章
- Holes in the text Add problem to Todo list Problem code: HOLES
import sys def count_holes(letter): hole_2 = ['A', 'D', 'O', 'P', 'Q', 'R'] if letter == 'B': return ...
- The Lead Game Add problem to Todo list Problem code: TLG
'''def count_lead(first, second): if first > second: return 1, first - second elif first == secon ...
- 【CodeChef】Turbo Sort
题目链接:Turbo Sort 用java自带O(NlogN)的排序就可以,java要特别注意输入输出.输入用BufferedReader,输出用printWriter.printWriter的速度比 ...
- Problem : 1002 ( A + B Problem II )
经验总结:一定要注意输出的格式,字符的空格,空行,一定要观察清楚.如本题的最后一个输出结果后面没有空行.最后代码实现的时候需要判断一下,代码如下 !=n) cout<<endl; Prob ...
- 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem B. Travelling Camera Problem set贪心
Problem B. Travelling Camera Problem 题目连接: http://www.codeforces.com/gym/100253 Description Programm ...
- 几何入门合集 gym101968 problem F. Mirror + gym102082 Problem F Fair Chocolate-Cutting + gym101915 problem B. Ali and Wi-Fi
abstract: V const & a 加速 F. Mirror 题意 链接 问题: 有n个人在y=0的平面上(及xoz平面).z=0平面上有一面镜子(边平行于坐标轴).z=a平面上有q个 ...
- Problem B The Blocks Problem(vector的使用)
题目链接:Problem B 题意:有n块木块,编号为0~n-1,要求模拟以下4种操作(下面的a和b都是木块编号) 1. move a onto b: 把a和b上方的木块全部归位,然后把a摞在b上面. ...
- A+B Problem Plus and A-B Problem Plus and A*B Problem Plus
//we have defined the necessary header files here for this problem. //If additional header files are ...
- Problem J. Joseph’s Problem 约瑟夫问题--余数之和
链接:https://vjudge.net/problem/UVA-1363 题意:给出n k,当 i 属于 1~n 时 ,求解 n% i 的和 n 和 k 的范围都是 1 到 10^9; 商相同 ...
随机推荐
- List容器
List 容器 list是C++标准模版库(STL,Standard Template Library)中的部分内容.实际上,list容器就是一个双向链表,可以高效地进行插入删除元素. 使用list容 ...
- ScrollView嵌套listview 时根据内容动态设置listview高度
public static void setListViewHeightBasedOnChilds(ListView listView){ ListAdapter listAdapter = list ...
- bzoj 2075: [POI2004]KAG
整天鬼畜题搞搞,感觉药丸…… 这种题出到xjoi模拟题里,太神了…… 这题的核心在于分割Cograph,尝试把Cograph的合成过程给求出来. 我们将这张图中的边为黑边,在这张图的补图中出现的边为白 ...
- Python 变量有效范围
- Android中半透明Activity效果另法
Android中的Activity有没有类似于像Windows程序样的窗口式显示呢? 答案当然是有. 下图就是一个窗口式Activity的效果图: 下面就说说实现过程: 首先看看AndroidMani ...
- Bash 使用技巧大补贴
https://linuxtoy.org/archives/the-best-tips-and-tricks-for-bash.html
- cf B. Maximum Absurdity
http://codeforces.com/contest/332/problem/B #include <cstdio> #include <cstring> #includ ...
- Windows脚本 - %~dp0的含义
含义是:更改当前目录为批处理本身的目录,有些晕吧?不急,我举例 比如你有个批处理a.bat在D:\qq文件夹下 a.bat内容为 cd /d %~dp0 在这里,cd /d %~dp0的意思就是cd ...
- SQL判断一个数是整数还是小数
DECLARE @number1 AS numeric(10,2),@number2 AS numeric(10,2) SELECT @number1=10.00,@number2=10.2 SELE ...
- windows下重命名一个带有前缀"."dot字符的名字的错误问题
如果用正常的右键重命名那么肯定会报错的,比如: 有一个名为project的文件,我想把它命名为.project,加了个前缀dot.然后window就报错了,弹出个对话框让“你必须输入一个文件名”.它可 ...