我想用队列创建一个基数排序实现.
我无法弄清楚我的代码的哪个部分有问题或我应该阅读哪些资源.我的代码可能完全错误,但这是我的实现没有任何帮助(我尚未采用数据结构和算法课程).
我创建了一个函数,但它没有用.在做研究时,我看到了一些代码示例,但对我来说似乎更复杂.
首先,我想找到所有整数的最低有效位数 然后在其下标匹配的队列元素中对它们进行排序, 然后在排序后将所有队列复制到第11个队列元素的末尾.在第11个队列元素中再次进行此排序,直到达到最高位数.
我能找到最不重要的数字.并根据这个数字排序.但是,我无法分析其他数字.例如; 我可以排序1,2,4,5,3,但是当排序2位或更多位数时,它会失败......
我希望,我很清楚并简要地解释了我的问题.
// My function declaration
// Pre: arrInts holds the linked list of integers which are going to be sort.
// Post: queue will return result and its 11th element should hold sorted integers in
// that queue
queue_node_t * radixSort(const queue_node_t *arrInts, queue_t *queue[], int size){
queue_node_t *curNodep = arrInts; // Node to be checked
int i, curNum = curNodep->element.key;
if(curNodep == NULL){
// If there …Run Code Online (Sandbox Code Playgroud) 我正在尝试从书中解决二维随机游走问题,探索python.但是,我无法弄清楚如何才能解决这个问题.我做了一些研究,但那些太复杂,无法理解它是什么.我是初学者.所以,通过查看我无法理解代码.请详细解释这个问题.
无论如何,问题是:
随机游走的二维变化开始于网格的中间,例如11乘11阵列.醉酒的每一步都有四种选择:上,下,左或右.在本章的前面,我们描述了如何创建二维数字数组.使用此数据类型,编写二维随机游走的模拟.
好的,我所知道的; 我知道如何在python中创建二维数组:
times = [0] * 11
for i in range(0,11):
times[i] = [0] * 11
Run Code Online (Sandbox Code Playgroud)
我得到了"randint"功能的想法:
而且我最近也写了这个问题的一维变体.但它是一个意大利面条代码,它非常脏,我也不确定它是否正确.
我的代码在这里:
'''
Created on Feb 11, 2012
@author: msarialp
'''
from random import randint
def drunken_man():
steps = 0
times = [0] * 11
left_move = 0
right_move = 0
i = 0
while left_move < 5 or right_move < 5:
value = randint(0,1)
times[5] = 1
if value == 1:
steps += 1
print("He moved left")
left_move += …Run Code Online (Sandbox Code Playgroud) 我正在尝试解决探索Python书籍的练习.但是,我想我不明白递归的概念.我写了一些递归函数.因此我知道一些方面.但是,我没有足够的经验.而且我已经停止学习大约一年的编程.
无论如何,让我给你一个完整的问题:
多边形可以由(x,y)对列表表示,其中每对是元组:[(x1,y1),(x2,y2),(x3,y3),...(xn,yn)] .编写递归函数来计算多边形的面积.这可以通过"切断"三角形来实现,使用具有角(x1,y1),(x2,y2),(x3,y3)的三角形具有面积(x1y1 + x2y2 + x3y2-y1x2-y2x3)的事实. y3x1)/ 2.
尽管问题已经给出了公式,但我使用了另一个公式.因为,我对多边形的面积做了一些研究.如果你看这里的公式是不同的.
一步一步地描述我的程序会更好,以便解释我想要的东西.好的,我必须声明全局范围,因为递归:
area = 0
x = [0] * 3
y = [0] * 3
Run Code Online (Sandbox Code Playgroud)
然后,我创建了一个递归函数.因此,此函数始终返回零.所以我真正的问题是:
def areaofpolygon(polygon, i):
global area, x, y # My variables
try: # I prefered using try statement from using if-else statements. So it is the easier I guess.
x[i], y[i] = polygon[i] # X and Y coordinates from tuple
area += (x[i]*y[i+1] - x[i+1]*y[i]) #My formula
except IndexError:
return area/2
areaofpolygon(polygon, i+1) …Run Code Online (Sandbox Code Playgroud)