Soft Ware/자료구조 및 알고리즘
세이커 정렬입니다
달려가보자
2012. 4. 16. 07:51
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;
}
}
이정렬은 버블 정렬을 보완하기 위해 나온 정렬로써
마지막 스왑한 인덱스를 기억해놓고 범위를 줄이는 정렬이다
버블 정렬을 보완하기 나온 정렬임으로 정렬방법은 버블과 비슷하다 ~