C程序 快速排序

来源:这里教程网 时间:2026-02-16 13:04:08 作者:

快速排序是一种分而治之的算法。步骤如下:1)从数组中选取一个元素,该元素称为支点元素。 2)将未排序的元素数组划分为两个数组,第一个子数组中是小于支点的值,而值大于支点的所有元素都在第二个子数组中(相等的值可以是任意一种)。此步骤称为分区操作。 3)对具有较小值的元素的子数组有序,和具有较大值的元素的子数组重复,递归地重复步骤 2,直到有序。我们在以下 C 程序中实现了相同的逻辑。

C 程序 – 快速排序算法实现

#include<stdio.h>void quicksort(int number[25],int first,int last){   int i, j, pivot, temp;   if(first<last){      pivot=first;      i=first;      j=last;      while(i<j){         while(number[i]<=number[pivot]&&i<last)            i++;         while(number[j]>number[pivot])            j--;         if(i<j){            temp=number[i];            number[i]=number[j];            number[j]=temp;         }      }      temp=number[pivot];      number[pivot]=number[j];      number[j]=temp;      quicksort(number,first,j-1);      quicksort(number,j+1,last);   }}int main(){   int i, count, number[25];   printf("How many elements are u going to enter?: ");   scanf("%d",&count);   printf("Enter %d elements: ", count);   for(i=0;i<count;i++)      scanf("%d",&number[i]);   quicksort(number,0,count-1);   printf("Order of Sorted elements: ");   for(i=0;i<count;i++)      printf(" %d",number[i]);   return 0;}

输出:

C程序 快速排序

相关推荐