国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言簡單實現快速排序

2020-01-26 13:33:39
字體:
來源:轉載
供稿:網友

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

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

具體代碼實現:

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

由于是第一次撰寫博客,許多地方沒有一個良好的習慣,還請讀者見諒。創建這個博客的目的實際上是為了讓自己對于數據結構與算法加深印象,通過博客的形式展現出來一方面方便自己查閱,另一方面以希望能夠通過自己的微薄之力幫助到有需要的朋友。

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 布拖县| 蓬溪县| 瓦房店市| 成都市| 乌审旗| 同德县| 汤原县| 金堂县| 胶南市| 额敏县| 岳阳市| 阿坝县| 白城市| 巫溪县| 临漳县| 鸡西市| 武夷山市| 公主岭市| 鹤山市| 冕宁县| 贵定县| 拜城县| 南投市| 梁平县| 南皮县| 湖南省| 普洱| 茂名市| 柯坪县| 江源县| 宜兰市| 开封县| 冀州市| 辽源市| 井研县| 洞头县| 三明市| 班玛县| 丹寨县| 柏乡县| 云林县|