<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • 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語言簡單實現快速排序,不知道的快來補課

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费