a program a day 25(ds,quick sort)
2010-10-21 23:49
337 查看
/**
*quick sort
**/
#include<stdio.h>
void swap(int * a,int * b)
{
int tmp;
tmp = *a;
*a = * b;
*b = tmp;
}
void quickSort(int array[],int start,int end)
{
int i,j;
if(start < end)
{
i = start;
j = end + 1;
while(1)
{
do i++;
while(!(array[start] >= array[i] || start == i));
do j--;
while(!(array[start] <= array[j] || end == j));
if(i < j)
swap(&array[i],&array[j]);
else
break;
}
swap(&array[start],&array[j]);
quickSort(array,start,j - 1);
quickSort(array,j + 1,end);
}
}
int main()
{
int arr[10] = {2,5,6,3,7,8,0,9};
printf("\nbefore sorted:\n");
for(int i = 0;i != 10;i++)
printf("%d ",arr[i]);
quickSort(arr,0,9);
printf("\n after sorted:\n");
for(int j = 0;j != 10;j++)
printf("%d ",arr[j]);
return 0;
}
*quick sort
**/
#include<stdio.h>
void swap(int * a,int * b)
{
int tmp;
tmp = *a;
*a = * b;
*b = tmp;
}
void quickSort(int array[],int start,int end)
{
int i,j;
if(start < end)
{
i = start;
j = end + 1;
while(1)
{
do i++;
while(!(array[start] >= array[i] || start == i));
do j--;
while(!(array[start] <= array[j] || end == j));
if(i < j)
swap(&array[i],&array[j]);
else
break;
}
swap(&array[start],&array[j]);
quickSort(array,start,j - 1);
quickSort(array,j + 1,end);
}
}
int main()
{
int arr[10] = {2,5,6,3,7,8,0,9};
printf("\nbefore sorted:\n");
for(int i = 0;i != 10;i++)
printf("%d ",arr[i]);
quickSort(arr,0,9);
printf("\n after sorted:\n");
for(int j = 0;j != 10;j++)
printf("%d ",arr[j]);
return 0;
}
相关文章推荐
- a program a day 19(ds,binary search)
- a program a day 20(ds,straight insertion sort)
- a program a day 21(ds,bubble sort)
- a program a day 22 (ds,selection sort)
- a program a day 23 (ds,shell's sort)
- PAT A1101 quick sort (25)
- day25/RegexDemo1.java
- Day 25
- PAT 1101. Quick Sort (25) 枢轴判断
- 1101. Quick Sort (25)
- PAT (Advanced Level) Practise 1101 Quick Sort (25)
- a program a day 7
- PAT甲题题解-1101. Quick Sort (25)-大水题
- 1101. Quick Sort (25)
- SQL数据库知识二(Day 25)
- day25正则表达式,匹配,切割,替换。获取。网页爬虫
- 1101.Quick Sort (25)
- day-25-表单-css
- day25/RegexDemo2.java
- 1101. Quick Sort (25)