欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

排序算法-快速排序

程序员文章站 2024-02-27 18:30:09
...

快速排序:

主要思想是:

1.设置基准值,设置第一个元素为基准:

2.从右端开始,找到第一个小于基准的值,然后将该值放入a[i]

3.从左端开始,找到第一个大于基准的值,然后将该值放入a[j]

 

排序算法-快速排序

 

 代码实现如下:

void  quick_sort(int *a,int low,int high)
{
    if(low >= high) 
        return;

   int i=low,j=high;
   int data=a[low];
  
   while(i<j){
      while(i<j&&a[j]>=data){
           j--;
      }
      if (i < j)
           a[i++]=a[j];
      
      while(i<j&&a[i]<=data){
           i++;
      }
      if (i < j)
           a[j--]=a[i];
    }

    a[i]=data;
    
    quick_sort(a,low,i-1);
    quick_sort(a,i+1,high);
}

#include <iostream>
using namespace std;

int main()
{   
    int a[10]={1,2,5,6,3,4,18,6,3,0};
    int i=0;
    while(i<=9){
      printf("%d,",a[i++]);
    }
    printf("\n");
    
    quick_sort(a,0,9);
    
    i=0;
    while(i<=9){
      printf("%d,",a[i++]);
    }
  return 0;
}
相关标签: Code Day