スナップテストプログラム
4837 ワード
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void printfArray(int *array,int arraySize)
{
printf("
Print Array start--------------
");
for(int i =0;i<arraySize;i++)
{
printf("%d ",*(array+i));
}
printf("
Print Array end --------------
");
}
int partition(int *array,int p,int r)
{
int partElement = *(array+r);
int lastSmallerIndex = p-1;
for(int j = p;j<=r-1;j++)
{
if(*(array+j)<=partElement )
{
lastSmallerIndex++;
int temp = *(array+lastSmallerIndex);
*(array+lastSmallerIndex) = *(array+j);
*(array+j) = temp;
}
}
*(array+r) = *(array+lastSmallerIndex+1);
*(array+lastSmallerIndex+1) = partElement;
return (lastSmallerIndex+1);
}
void quickSort(int *array,int p,int r)
{
if(p<r){
int q = partition(array,p,r);
quickSort(array,p,q-1);
quickSort(array,q+1,r);
}
}
void test(){
int testArray[ ] = {6,4,7,3,2,7,9,10};
int length = sizeof(testArray)/sizeof(int);
printfArray(testArray,length);
quickSort(testArray,0,length-1);
printfArray(testArray,length);
}
int main()
{
test( );
}