小编mus*_*alp的帖子

Radix使用队列排序

我想用队列创建一个基数排序实现.

我无法弄清楚我的代码的哪个部分有问题或我应该阅读哪些资源.我的代码可能完全错误,但这是我的实现没有任何帮助(我尚未采用数据结构和算法课程).

我创建了一个函数,但它没有用.在做研究时,我看到了一些代码示例,但对我来说似乎更复杂.

首先,我想找到所有整数的最低有效位数 然后在其下标匹配的队列元素中对它们进行排序, 然后在排序后将所有队列复制到第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)

c queue linked-list radix-sort

8
推荐指数
1
解决办法
5276
查看次数

使用Python的另一种简单随机游走模拟(二维)

我正在尝试从书中解决二维随机游走问题,探索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

7
推荐指数
1
解决办法
2万
查看次数

多边形区域(递归使用Python)

我正在尝试解决探索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)

python recursion polygon area

6
推荐指数
2
解决办法
6170
查看次数

标签 统计

python ×2

area ×1

c ×1

linked-list ×1

polygon ×1

queue ×1

radix-sort ×1

recursion ×1