亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言簡單實現(xiàn)快速排序

 更新時間:2019年01月17日 11:54:45   作者:n.xuanrui  
快速排序是一種不穩(wěn)定排序,這篇文章主要為大家詳細(xì)介紹了C語言簡單實現(xiàn)快速排序,具有一定的參考價值,感興趣的小伙伴們可以參考一下

快速排序是一種不穩(wěn)定排序,它的時間復(fù)雜度為O(n·lgn),最壞情況為O(n2);空間復(fù)雜度為O(n·lgn)。
這種排序方式是對于冒泡排序的一種改進,它采用分治模式,將一趟排序的數(shù)據(jù)分割成獨立的兩部分,其中一組數(shù)據(jù)的每個值都小于另一組。每一趟在進行分類的同時實現(xiàn)排序。

其中每一趟的模式通過設(shè)置key當(dāng)基準(zhǔn)元素,key的選擇可以是數(shù)據(jù)的第一個,也可以是數(shù)據(jù)的最后一個。這里以每次選取數(shù)據(jù)的第一個為例:

具體代碼實現(xiàn):

#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;
 } 

由于是第一次撰寫博客,許多地方?jīng)]有一個良好的習(xí)慣,還請讀者見諒。創(chuàng)建這個博客的目的實際上是為了讓自己對于數(shù)據(jù)結(jié)構(gòu)與算法加深印象,通過博客的形式展現(xiàn)出來一方面方便自己查閱,另一方面以希望能夠通過自己的微薄之力幫助到有需要的朋友。

也希望自己能夠堅持下去,認(rèn)真的去做這么一件事。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C基礎(chǔ) mariadb處理的簡單實例

    C基礎(chǔ) mariadb處理的簡單實例

    下面小編就為大家?guī)硪黄狢基礎(chǔ) mariadb處理的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • C++實現(xiàn)圖書管理系統(tǒng)源碼

    C++實現(xiàn)圖書管理系統(tǒng)源碼

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)圖書管理系統(tǒng)源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Qt實現(xiàn)密碼框

    Qt實現(xiàn)密碼框

    這篇文章主要為大家詳細(xì)介紹了Qt實現(xiàn)密碼框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 用C語言實現(xiàn)井字棋游戲代碼

    用C語言實現(xiàn)井字棋游戲代碼

    大家好,本篇文章主要講的是用C語言實現(xiàn)井字棋游戲代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Qt4和Qt5的信號和槽的使用區(qū)別

    Qt4和Qt5的信號和槽的使用區(qū)別

    本文主要介紹了Qt4 和 Qt5 的信號和槽的連接 connect 與斷開 disconnect 區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C++利用多態(tài)實現(xiàn)職工管理系統(tǒng)(項目開發(fā))

    C++利用多態(tài)實現(xiàn)職工管理系統(tǒng)(項目開發(fā))

    這篇文章主要介紹了C++利用多態(tài)實現(xiàn)職工管理系統(tǒng)(項目開發(fā)),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • C++ 輕量級對象JSON序列化實現(xiàn)詳情

    C++ 輕量級對象JSON序列化實現(xiàn)詳情

    本文以jsoncpp庫為基礎(chǔ),設(shè)計這樣一個可以支持一個函數(shù) 可以一行代碼 unmarshal /marshal 對象,需要的朋友小伙伴可以參考以下
    2021-09-09
  • C語言中g(shù)etopt()函數(shù)和select()函數(shù)的使用方法

    C語言中g(shù)etopt()函數(shù)和select()函數(shù)的使用方法

    這篇文章主要介紹了C語言中g(shù)etopt()函數(shù)和select()函數(shù)的使用方法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C語言時間函數(shù)之strftime()詳解

    C語言時間函數(shù)之strftime()詳解

    這篇文章主要為大家詳細(xì)介紹了C語言時間函數(shù)之strftime(),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 關(guān)于Qt添加opencv和libtorch庫的問題

    關(guān)于Qt添加opencv和libtorch庫的問題

    這篇文章主要介紹了Qt添加opencv和libtorch庫的相關(guān)知識,兩種方法一種是通過手動添加,一種是通過qt creator添加,需要的朋友可以參考下
    2022-01-01

最新評論