快速排序算法代碼c語言「c語言快速排序算法」

快速排序是一種不穩定排序,它的時間複雜度為O(n·lgn),最壞情況為O(n2);空間複雜度為O(n·lgn)。

這種排序方式是對於冒泡排序的一種改進,它採用分治模式,將一趟排序的數據分割成獨立的兩部分,其中一組數據的每個值都小於另一組。每一趟在進行分類的同時實現排序。

C語言編程筆記丨C語言簡單實現快速排序,不知道的快來補課

其中每一趟的模式通過設置key當基準元素,key的選擇可以是數據的第一個,也可以是數據的最後一個。這裡以每次選取數據的第一個為例:

C語言編程筆記丨C語言簡單實現快速排序,不知道的快來補課

另外,關於C/C++編程學習,小編給大家提供一個學習.交.流群,歡迎到訪:569268376

具體代碼實現:

#include<stdio.h>

#define N 6

int fun(int arr[],int low,int high)

{

int key;

key=arr[low];

while(low<high)

{

while(low<high && arr[high]>=key)

high–;

if(low<high)

arr[low++]=arr[high];

while(low<high && arr[low]<=key)

low++;

if(low<high)

arr[high–]=arr[low];

}

arr[low]=key;

return low;

}

void quick_sort(int arr[],int start,int end)

{

int pos;

if(start<end)

{

pos=fun(arr,start,end);

quick_sort(arr,start,pos-1);

quick_sort(arr,pos+1,end);

}

}

int main()

{

int i;

int arr[N]={32,12,7,78,23,45};

for(i=0;i<N;i++)

{

printf(“%d “,arr[i]);

}

printf(“n”);

quick_sort(arr,0,N-1);

for(i=0;i<N;i++)

{

printf(“%d “,arr[i]);

}

return 0;

}

C語言編程筆記丨C語言簡單實現快速排序,不知道的快來補課

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/273927.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-17 14:09
下一篇 2024-12-17 14:09

相關推薦

發表回復

登錄後才能評論