PDA

View Full Version : محاسبه پیچیدگی زمانی و مکانی یک برنامه



B E H N A M
دوشنبه 21 آبان 1386, 10:27 صبح
سلام !
خیلی دنبال یک مقاله تو سایت در رابطه با پیچیدگی مکانی و زمانی گشتم ولی متاسفانه پیدا نکردم .
به همین خاطر تصمیم گرفتم این تاپیک را زده و از دوستانی که اطلاعاتی در این زمینه دارن تقاضا کنم که من را یاری کنند.
قبل از هر چیز دو تا برنامه می گذارم و از دوستان تقاضا دارم پیچیدگی زمانی و مکانی آن را محاسبه کنند و جواب را به همراه چگونگی محاسبه در همین تاپیک بذارن .




Option Base 1
Private Sub Command1_Click()
Dim A(10) As Integer
Dim B, C, D, I As Integer
For I = 1 To 10
A(I) = Val(InputBox("ÚÏÏ ÎÇäå " & I & "ÑÇ æÇÑÏ ˜äíÏ"))
Next I
For I = 1 To 9
For B = 1 To 9
If A(B) < A(B + 1) Then
C = A(B)
A(B) = A(B + 1)
A(B + 1) = C
End If
Next B
Next I
For I = 1 To 10
Print A(I);
Next I
End Sub





Option Explicit
Private Sub Command1_Click()
Dim A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 As Integer
Dim I, S, M As Integer
A1 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A2 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A3 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A4 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A5 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A6 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A7 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A8 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A9 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
A10 = Val(InputBox("í˜ ÚÏÏ æÇÑÏ ˜äíÏ"))
For I = 1 To 9
If A1 < A2 Then
S = A1
A1 = A2
A2 = S
End If

If A2 < A3 Then
S = A2
A2 = A3
A3 = S
End If

If A3 < A4 Then
S = A3
A3 = A4
A4 = S
End If

If A4 < A5 Then
S = A4
A4 = A5
A5 = S
End If

If A5 < A6 Then
S = A5
A5 = A6
A6 = S
End If

If A6 < A7 Then
S = A6
A6 = A7
A7 = S
End If

If A7 < A8 Then
S = A7
A7 = A8
A8 = S
End If

If A8 < A9 Then
S = A8
A8 = A9
A9 = S
End If

If A9 < A10 Then
S = A9
A9 = A10
A10 = S
End If
Next I
Print A1; A2; A3; A4; A5; A6; A7; A8; A9; A10
End Sub



هر دو برنامه 10 عدد را گرفته و به صورت نزولی مرتب می کنند که اولی با استفاده از آرایه و دومی بدون استفاده از آرایه می باشد.
با تشکر...

whitehat
دوشنبه 21 آبان 1386, 10:43 صبح
دقت کنید که پیچیدگی زمانی برای هر دو کد برابر ( O(k است!

B E H N A M
دوشنبه 21 آبان 1386, 12:39 عصر
دقت کنید که پیچیدگی زمانی برای هر دو کد برابر ( O(k است!
از توجه شما ممونوم . ولی متاسفانه متوجه نشدم .
در صورت امکان بیشتر توضیح بدید .
با تشکر ...

whitehat
دوشنبه 21 آبان 1386, 14:30 عصر
زمانی که تعدا تکرار الگوریتم شما ثابت است مثلا در الگوریتم اول تعداد تکرار 81 است پس پیچیدگی الگوریتم ثابت است، اما اگر همان عدد 9 برابر n باشد ،پیچیدگی الگوریتم ( 2^O(n می شود