TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: O(n^n) procedure?

2 pointsby cao825over 14 years ago
I was discussing with some friends at work some of the worst algorithms (in terms of Big O), like Bogo Sort, Stooge Sort, etc... We were trying to think of how one could write a procedure with O(n^n) and all of our attempts ended up being infinite or much less than n^n.<p>I would imagine we just didn't think in the correct terms. Unfortunately, neither Google nor Wolframalpha were any help finding one from my searches.<p>Thanks!

1 comment

tgflynnover 14 years ago
If you think of an nxn matrix the set of all paths containing one element from each column has cardinality n^n. This is also the set of all functions from a set of cardinality n to itself or the set of all sequences of length n where each element is an element of a set of cardinality n.<p>Below is a procedure that generates it. The number of operations is actually sum from k =0 to k =n ( n^(n-k) ) but asymptotically that's still O( n^n ).<p><pre><code> def allFunctions( s, i = 0, count = 0 ): F = [] if i == len( s ) - 1: return ( [ [ x ] for x in s ], len( s ) ) (G,count) = allFunctions( s, i + 1, count ) for g in G: for i in range( len( s ) ): F.append( g + [ s[i] ] ) count += 1 return ( F, count )</code></pre>
评论 #2234782 未加载