소프트웨어 디자인 핵심 - 알고리즘
24964 단어 알고리즘
거품 정렬:
using System;
namespace BubbleSorter
{ public class BubbleSorter
{ public void Sort(int [] list)
{ int i,j,temp;
bool done=false;
j=1;
while((j<list.Length)&&(!done))
{ done=true;
for(i=0;i<list.Length-j;i++)
{
if(list[i]>list[i+1])
{
done=false;
temp=list[i];
list[i]=list[i+1];
list[i+1]=temp;
} }
j++; }
} }
public class MainClass
{ public static void Main()
{
int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
BubbleSorter sh=new BubbleSorter();
sh.Sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
} }
}
정렬 선택:
using System;
namespace SelectionSorter
{ public class SelectionSorter
{ private int min;
public void Sort(int [] list)
{ for(int i=0;i<list.Length-1;i++)
{ min=i;
for(int j=i+1;j<list.Length;j++)
{ if(list[j]<list[min])
min=j;
}
int t=list[min];
list[min]=list[i];
list[i]=t;
} }
}
public class MainClass
{ public static void Main()
{
int[] iArrary=new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
SelectionSorter ss=new SelectionSorter();
ss.Sort(iArrary);
for(int m=0;m<iArrary.Length;m++)
Console.Write("{0} ",iArrary[m]);
Console.WriteLine();
} }
}
삽입 정렬:
using
System;
namespace
InsertionSorter
{
public
class
InsertionSorter
{
public
void
Sort(
int
[] list)
{
for
(
int
i
=
1
;i<list.Length;i
++
)
{
int
t
=
list[i];
int
j
=
i;
while
((j>
0
)
&&
(list[j
-
1
]>t))
{ list[j]
=
list[j
-
1
];
--
j;
}
list[j]
=
t; }
}
}
public
class
MainClass
{
public
static
void
Main()
{
int
[] iArrary
=
new
int
[]{
1
,
13
,
3
,
6
,
10
,
55
,
98
,
2
,
87
,
12
,
34
,
75
,
33
,
47
};
InsertionSorter ii
=
new
InsertionSorter();
ii.Sort(iArrary);
for
(
int
m
=
0
;m<iArrary.Length;m
++
)
Console.Write(
"
{0}
"
,iArrary[m]);
Console.WriteLine();
} }
}
힐 정렬: 힐 정렬 은 그룹 을 나 누 어 정렬 하 는 것 입 니 다.
using
System;
namespace
ShellSorter
{
public
class
ShellSorter
{
public
void
Sort(
int
[] list)
{
int
inc;
for
(inc
=
1
;inc<
=
list.Length
/
9
;inc
=
3
*
inc
+
1
);
for
(;inc>
0
;inc
/=
3
)
{
for
(
int
i
=
inc
+
1
;i<
=
list.Length;i
+=
inc)
{
int
t
=
list[i
-
1
];
int
j
=
i;
while
((j>inc)
&&
(list[j
-
inc
-
1
]>t))
{
list[j
-
1
]
=
list[j
-
inc
-
1
];
j
-=
inc;
}
list[j
-
1
]
=
t;
} }
} }
public
class
MainClass
{
public
static
void
Main()
{
int
[] iArrary
=
new
int
[]{
1
,
5
,
13
,
6
,
10
,
55
,
99
,
2
,
87
,
12
,
34
,
75
,
33
,
47
};
ShellSorter sh
=
new
ShellSorter();
sh.Sort(iArrary);
for
(
int
m
=
0
;m<iArrary.Length;m
++
)
Console.Write(
"
{0}
"
,iArrary[m]);
Console.WriteLine();
} }
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.