1、快速排序
void QuickSort(int values[22], int begin, int end)
{
int left = begin;
int right = end;
int base = values[(left + right)/2];
while(left <= right)
{
for(;values[left] < base; left++)
;
for(;values[right] > base; right--)
;
if(left <= right)
{
int temp = values[left];
values[left] = values[right];
values[right] = temp;
left++;
right--;
}
}
if(right > begin)
{
QuickSort(values, begin, right);
}
if(left < end)
{
QuickSort(values, left, end);
}
return;
}
2、冒泡排序
void BubbleSort(int values[], int iSize)
{
if((NULL == values) || (0 >= iSize))
{
return;
}
for(int index = iSize; index >= 0; index--)
{
for(int i = 0; i < iSize - index - 1; i++)
{
if(values[i] > values[i + 1])
{
int iTemp = values[i];
values[i] = values[i + 1];
values[i + 1] = iTemp;
}
}
}
}
3、插入排序
void InsertSort(int values[], int iSize)
{
if((NULL == values) || (0 >= iSize))
{
return;
}
for(int index = 0; index < iSize - 1; index++)
{
int iCurrent = values[index + 1];
for(int iPre = index; iPre >= 0; iPre--)
{
if(values[iPre] > iCurrent)
{
values[iPre + 1] = values[iPre];
}
else
{
values[iPre + 1] = iCurrent;
}
}
}
}
4、选择排序
void SelectSort(int values[], int begin, int end)
{
if((NULL == values) || (begin >= end))
return;
while(begin < end)
{
int min = values[begin];
for(int i = begin; i <= end; i++)
{
if(min > values[i])
{
int temp = values[i];
values[i] = min;
min = temp;
}
}
values[begin] = min;
begin++;
}
return;
}
void SelectSort(int values[], int iSize)
{
if((NULL == values) || (0 >= iSize))
{
return;
}
for(int index = 0; index < iSize; index++)
{
int iMinIndex = index;
for(int i = index + 1; i < iSize; i++)
{
if(values[i] < values[index])
{
iMinIndex = i;
}
int iTemp = values[index];
values[index] = values[iMinIndex];
values[iMinIndex] = iTemp;
}
}
}