首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新人求教 快排,该如何处理

2012-11-07 
新人求教 快排#includestdio.h#includestdlib.hint main(){int Partation(int *a,int low,int high)v

新人求教 快排
#include<stdio.h>
#include<stdlib.h>
int main()
{
  int Partation(int *a,int low,int high);
  void QSort(int *a,int low,int high);
  int a[5]={1,5,9,3,7};
  int low=0,high=4;
  for(int i=0;i<5;i++)
  {
  printf("%d ",a[i]);
  }
  return 0;
}
int Partation(int *a,int low,int high)
{
  a[0]=a[low];
  int pivotkey=a[low];
  while(low<high)
  {
  while(low<high&&a[high]>=pivotkey) high--;
  a[low]=a[high];
  while(low<high&&a[low]<=pivotkey) low++;
  a[high]=a[low];
  }
  a[low]=a[0];
  return low;
}
void QSort(int *a,int low,int high)
{
  if(low<high)
  {
  int pivotloc=Partation(a,low,high);
  QSort(a,low,pivotloc-1);
  QSort(a,pivotloc+1,high);
  }
}
好心人看一下我哪里出错了 感谢

[解决办法]

C/C++ code
#include<stdio.h>#include<stdlib.h>int main(){  int Partation(int *a,int low,int high);  void QSort(int *a,int low,int high);  int a[5]={1,5,9,3,7};  int low=0,high=4;  QSort(a,low,high);  for(int i=0;i<5;i++)  {  printf("%d ",a[i]);  }  return 0;}int Partation(int *a,int low,int high){  int pivotkey=a[low];  while(low<high)  {  while(low<high&&a[high]>=pivotkey) high--;  a[low]=a[high];  while(low<high&&a[low]<=pivotkey) low++;  a[high]=a[low];  }  a[low]=pivotkey;  return low;}void QSort(int *a,int low,int high){  if(low<high)  {  int pivotloc=Partation(a,low,high);  QSort(a,low,pivotloc-1);  QSort(a,pivotloc+1,high);  }} 

热点排行