スナップテストプログラム

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( ); }