|
|
ساعت |
|
برای دوست خوبمان شیوا جان
این دو برنامه را با کمی توضیح که کمکت می
کنه آماده کردیم اگر سئوالی داشتی تماس بگیر.
معمولا اطلاعات و داده های خامی که در
اختیار برنامه نویس قرار داره بصورت نامرتب هستن. مواقعی پیش می یاد که لازمه این
داده ها بر حسب فیلد خاصی مرتب بشن؛ مثل لیست دانش آموزان بر حسب معدل ، لیست
کارمندان بر حسب شماره پرسنلی ، لیست دفترچه تلفن بر حسب نام خانوادگی و ...
روشهای متعددی برای مرتب سازی وجود داره که من قصد دارم تا حد امکان شیوا
خانم رو با این روشها آشنا کنم. برای شروع روش مرتب سازی انتخابی (Selection Sort)
رو توضیح می دم.
روش انتخابی اولین روشیه که به ذهن می رسه:
بزرگترین رکورد بین رکوردهای لیست رو پیدا می کنیم و به انتهای لیست انتقال می
دیم. از بقیه رکوردها بزرگترین رو انتخاب می کنیم و انتهای لیست - کنار رکورد قبلی
- قرار می دیم و ... مثلا:
0: 9 1
6 4 7 3 5
1: 5 1 6 4 7
3 9
2: 5 1 6 4 3
7 9
3: 5 1 3 4 6
7 9
4: 4 1 3 5 6
7 9
5: 3 1 4 5 6
7 9
6: 1 3 4 5 6
7 9
برای مرتب سازی آرایه ای از اعداد صحیح با
این روش از کد پایین استفاده می شه:
این کد برنامه مرتب سازی انتخابی به زبان سی است.
void selection_sort ( int arr[] , int n )
{
register int i , j ;
int max , temp ;
for ( i = n - 1 ; i > 0 ; i -- )
{
max = 0 ;
for ( j = 1 ; j <=
i ; j ++ )
if ( arr[ max ] <
arr[ j ] )
max = j ;
temp = arr[ i ] ;
arr[ i ] = arr[ max ] ;
arr[ max ] = temp ;
}
}
این کد همین برنامه(مرتب سازی انتخابی)
به زبان پاسکال است:
procedure selection_sort ( var arr : array of integer ) ;
var
i , j , max , temp : integer ;
begin
for i := High (
arr ) downto
1 do
begin
max := 0 ;
for j := 1 to i do
if arr[ max ] < arr
[ j ] then
max := j ;
temp := arr[ i ] ;
arr[ i ] := arr[ max ] ;
arr[ max ] := temp ;
end ;
end ;
اگه تعداد رکوردها برابر n
باشه ، n - 1 مرحله لازمه تا تمام داده ها مرتب بشن.
مرحله اول n-1 مقایسه ، مرحله دوم
n
- 2 مقایسه ، ... و مرحله آخر 1 مقایسه انجام می گیره. پس روی هم
رفته برای مرتب کردن n رکورد به n ( n - 1 ) / 2
مقایسه نیاز داریم ، که نشون می ده این روش چندان مناسب نیست.
اولین عیب این روش ثابت بودن تعداد مقایسه
ها بدون در نظر گرفتن شیوه چینش رکوردهاست. مثلا حالتی که رکوردها به طور کاملا
معکوس باشن (یعنی رکورد اول بزرگترین رکورد و لیست نزولی باشه) با حالتی که لیست
کاملا مرتب باشه هیچ تفاوتی نداره ، و همیشه n ( n - 1
) / 2 مقایسه باید انجام بگیره!!!
دومین عیب مربوط به تعداد مقایسه هاست. اگه
تعداد رکوردها هزار برابر بشه تعداد مقایسه ها حدود یک میلیون برابر افزایش
پیدا می کنه (به قول اهل فن درجه n²). روشهایی وجود
دارن که با همین تعداد افزایش رکورد تعداد مقایسه ها فقط سه هزار برابر
می شه ، و مطمئنا صرفه بیشتری دارن.
در کل روش انتخابی به عنوان یکی از روشهای
تعویضی کاربرد چندانی نداره. مخصوصا اگه با رکوردهای زیادی سر و کار داشته
باشیم.
مرتب سازي درجي (Insertion Sort)
يكي از روشهاي مرتب سازي رايج و البته نه چندان كارا محسوب مي شه. اين روش در
مقايسه با مرتب سازي حبابي و انتخابي سرعت بهتري داره و براي مرتب كردن تعداد كمي
از عناصر مناسبه. به همين خاطر مراحل انتهايي روش مرتب سازي سريع (Quick Sort)
با كمك گرفتن از اين روش انجام مي گيره.
الگوريتم مرتب سازي درجي بر اساس مرتب
سازيهايي كه معمولا خود ما بصورت دستي انجام مي ديم طراحي شده. فرض كنيد دسته
كارتي با شماره هاي 1 تا 10 بصورت نامرتب و كنار هم روي زمين چيده شدن:
5
2 9 3 1 10 4 6 8 7
كارت دوم رو نسبت به كارت اول در جاي مناسب
خودش قرار مي ديم:
2 5 9
3 1 10 4 6 8 7
حالا نوبت به كارت سوم مي رسه. اين كارت رو
نسبت به دو كارت قبلي در جاي مناسب قرار مي ديم. چون 9 در مقايسه با 2 و 5 جاي
درستي داره بدون هيچ جابجايي به كارت چهارم مي رسيم. جاي اين كارت رو نسبت به سه
كارت قبلي مشخص مي كنيم:
2 3
5 9 1 10 4 6 8 7
و به همين ترتيب تا آخر ادامه مي ديم.
اگه n تعداد عناصر رو
مشخص كنه ، اين روش n - 1 مرحله رو براي مرتب كردن طي مي كنه.
بعد از اتمام مرحله i ام مطمئنا i + 1
عنصر اول به صورت مرتب شده هستن (قسمتي كه زيرشون خط كشيده شده). اين مساله يكي از
حسنهاي مرتب سازي درجي محسوب مي شه: در هر مرحله حتما قطعه اي از عناصر مرتب شده
هستن. مرتب سازي حبابي اين ويژگي رو نداره.
تابع مرتب سازی درجی به زبان سی :
void insertion_sort ( int arr[ ] , int n )
{
register int i , j , t ;
for ( i = 1 ; i <
n ; i++ )
{
t = arr[ i ] ;
for ( j = i ; j > 0 && arr[ j - 1 ] >= t ; j-- )
arr[ j ] = arr[ j - 1 ] ;
arr[ i ] = t ;
}
}
تابع مرتب سازی درجی
به زبان پاسکال:
procedure insertion_sort ( var arr : array of integer ) ;
var
i , j , t : integer;
begin
for i := 1 to
high ( arr ) do
begin
t := arr[ i ] ;
j = i ;
while ( j > 0 ) and
( arr[ j - 1 ] >= t ) do
begin
arr[ j ] = arr[ j - 1 ] ;
dec ( j ) ;
end ;
arr[ i ] = t ;
end ;
end ;
حلقه بيروني مراحل مختلف مرتب سازي رو پياده
مي كنه و حلقه داخلي عناصر رو به ميزان مورد نياز جابجا مي كنه.
شیوا جان فرصت نشد امروز براتون برنامه سوم را قرار بدهیم حتما در اولین
فرصت برنامه سوم را هم می نویسیم.
دوقلوهایی که دوستدار شما هستند.
ولی...اگر پیغام 1of 2 service runing -put online یا none service runinig-put online باشد شما باید یکی از سرویس هایتان را که start نیست یا هر دوی آنها را از همین جا start کنید.
اما...اگر all service runing-put offline بود در این صورت شما باید روی گزینه put online کلیک کنید.
درنتیجه وقتی روی wamp موس را نگه میدارید حتما باید با گزینه all service running put online روبه رو شوید
توجه: این را هم به یاد داشته باشید که قبل از نصب wamp باید IIS را غیرفعال نمایید.
امیدواریم توانسته باشیم مطالب را خوب بیان کرده باشیم و موفقیت همه دوستان را در نصب آرزومندیم.![]()
![]()
دوستان عزیز میتوانند مشکلاتشان را درمورد نصب سیستم های مدیریت محتوا در همین مطلب درج کنند .
wamp/www/joomla/installation/sql/mysql/joomla.sql
توجه۱:پوشه joomla همان پوشه ای است که از حالت فشرده خارجش کردید و در www خودتان آن را کپی کردید پس شاید نام این پوشه را joomla نگذاشته باشید و نام دیگری مثل joomla1 یا joomla2 یا... انتخاب کرده باشید.
توجه۲:اگر فایل متنی بدون پسوند sql نمایان شد مشکلی نیست .(مثلا فقط joomla بود)
توصیه: اگرشما از cms فارسی مثل mamboاستفاده میکنید نیازی به import کردن فایل متنی ندارید و فقط باید یک db بسازید.
اگر مشکلی داشتید مراجعه فرمایید تا جایی که قادر باشیم کمک میکنیم.
امیدواریم همواره موفق باشید.
دوستان عزیز تقاضا کرده بودند که آدرس چند سایت که فضایی رایگان جهت قرار دادن فایل ها در اینترنت می دهد بنویسیم
توصیه ی ما به شما این است که از سایت اولی استفاده کنید و ما خودمان هم از همان فضا جهت قرار دادن فایل هایمان استفاده می کنیم .
برای استفاده از آن باید ابتدا وارد سایت مربوطه شده و یک حساب کاربری بسازید(در قسمت get 1 gb of free space)که این کار بسیار ساده ای است. سپس فضایی به شما می دهد جهت قرار دادن فایل هایتان که شما می توانید فایل هایتان را یکی یکی ویا چند فایل را با هم (مالتی) قرار دهید
بعد جهت قرار دادن آن در وبلاگتان باید آدرس (url) آن را کپی بگیرید و در قسمت اچ تی ام ال وبلاگتان برای مطلب مورد نظر قرار دهید.
با آرزوی موفقیت
امروز می خواهیم نرم افزاری را به شما معرفی کنم که توسط echoproject تولید شده است .این نرم افزار برای آموزش نصب ویندوز xp می باشد و تمام مراحل نصب ویندوز را به طور مجازی مشابه نصب واقعی ویندوز به شما نشان می دهد . این نرم افزار علاوه بر آموزش و نشان دادن مراحل نصب ویندوز xp شما را با برخی از بخش های ویندوز xp از جمله Desktop , Taskbar و Start menu آشنا می کند .
امیدواریم با نظراتتان ما را راهنمایی کنید.
|
|
POWERED BY BLOGFA.COM |
|