void ShakerSort(int Data[], int nCount)
{
int Left = 0;
int Right = nCount;
int ChaData = 0;
int count = 0;
int count1 = 0;
int shift = 0;
while(Left < Right)
{
for(count = Left; count < Right; count++)
{
if(Data[count]>Data[count+1])
{
ChaData = Data[count];
Data[count] = Data[count+1];
Data[count+1] = ChaData;
shift = count;
}
}
Right = shift;
for(count = Right; count > Left; count--)
{
if(Data[count] < Data[count-1])
{
ChaData = Data[count];
Data[count] = Data[count-1];
Data[count-1] = ChaData;
shift = count;
}
}
Left = shift;
}
}
이정렬은 버블 정렬을 보완하기 위해 나온 정렬로써
마지막 스왑한 인덱스를 기억해놓고 범위를 줄이는 정렬이다
버블 정렬을 보완하기 나온 정렬임으로 정렬방법은 버블과 비슷하다 ~
'Soft Ware > 자료구조 및 알고리즘' 카테고리의 다른 글
트리에서 전위순회, 중위순회, 하위순회 (0) | 2012.04.17 |
---|---|
- 트리 - LCRS 원하는 높이 부분만 출력 (0) | 2012.04.17 |
버블 정렬입니다 (0) | 2012.04.16 |
정렬 !! -선택정렬- (0) | 2012.04.16 |
유클리드 호제법을 이용한 최대공약수 구하기 (0) | 2012.04.16 |