计算机二级:C++三种排序算法实例代码
来源:优易学  2010-1-14 19:19:20   【优易学:中国教育考试门户网】   资料下载   IT书店
  快速排序:
  int partition(int* a,int l,int r)
  {
  int i=l-1,j=r,v=a[r];
  while(1)
  {
  while(a[++i]
  while(a[--j]>v) if(j<=i) break;
  if(i>=j)
  break;
  swap(a[i],a[j]);
  }
  swap(a[i],a[r]);
  return i;
  }  
  void qsort(int* a,int l,int r)
  {
  if(l>=r) return;
  int i = partition(a,l,r);
  qsort(a,l,i-1);
  qsort(a,i+1,r);
  }
  插入排序:
  void insertsort(int* a,int n)
  {
  int key;
  for(int j=1;j
  {
  key = a[j];
  for(int i=j-1;i>=0&&a[i]>key;i--)
  {
  a[i+1] = a[i];
  }
  a[i+1] = key;
  }
  }
  冒泡排序:
  void buble(int *a,int n)
  {
  for(int i=0;i
  {
  for(int j=1;j
  {
  if(a[j]
  {
  int temp=a[j];
  a[j] = a[j-1];
  a[j-1] = temp;
  }
  }
  }
  }

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训