排序代码,冒泡和快速
<pre name="code" class="cpp">#include"iostream"
int data[18] = {48,25,91,53,88,64,37,79,2,80,14,35,10,56,23,96,52,67};
void maopao(int *data, int lenth)
{
int i = 0;
int j = 0;
int k = 0;
int temp = 0;
for (i = 0; i < lenth - 1; i++)
{
for (j = lenth - 1; j > i; j--)
{
if (data[j] < data[i])
{
temp = data[j];
data[j] = data[i];
data[i] = temp;
}
}
for (k = 0; k < lenth; k++)
{
printf("%d, ",data[k]);
}
printf("\n");
}
printf("-----------------------------------------\n");
for (k = 0; k < lenth; k++)
{
printf("%d, ", data[k]);
}
printf("\n");
printf("-----------------------------------------\n");
}
void quicksort(int *data,int left, int right)
{
int i, j, k, lenth;
int privokey, temp;
i = left;
j = right;
lenth = sizeof(data) / sizeof(data[0]);
privokey = data[left];
do
{
while ((data[i] < privokey) && (i < right))
{
i++;
}
while ((data[j] > privokey) && (j>left))
{
j--;
}
if (i<=j)
{
temp = data[i];
data[i] = data[j];
data[j] = temp;
j--;
i++;
}
for (k = 0; k < 18; k++)
{
printf("%d, ", data[k]);
}
printf("i=%d,j=%d\n", i, j);
} while (i <= j);
if (left < j)
{
quicksort(data,left, j);
}
if (right > i)
{
quicksort(data,i, right);
}
printf("-----------------------------------------\n");
for (k = 0; k < 18; k++)
{
printf("%d, ", data[k]);
}
printf("\n");
printf("-----------------------------------------\n");
}
void main()
{
//maopao( data,sizeof(data)/sizeof(data[0]) );
quicksort(data,0,17);
}