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

首頁 > 編程 > C > 正文

C語言數據結構 快速排序實例詳解

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

C語言數據結構 快速排序實例詳解

一、快速排序簡介

快速排序采用分治的思想,第一趟先將一串數字分為兩部分,第一部分的數值都比第二部分要小,然后按照這種方法,依次對兩邊的數據進行排序。

二、代碼實現

#include <stdio.h>/* 將兩個數據交換 */void swap(int* Ina , int* Inb){  int temp = *Ina;  *Ina = *Inb;  *Inb = temp;}/* 進行一趟的快速排序,把一個序列分為兩個部分 */int getPartion(int* InArry,int InBegin,int InEnd){  /* 剛開始的分隔線是第一個 */  int part = InBegin;  int index = 0;  if(InEnd >= InBegin)  {    part = InBegin;    for(index = InBegin+1; index <= InEnd; index++)    {      if(InArry[InBegin] >= InArry[index])      {        /* 交換位置 */        swap(&InArry[part+1],&InArry[index]);        part++;      }    }    /* 把第一個數放到part處去 */    swap(&InArry[InBegin],&InArry[part]);    return part;  }}/* 快速排序函數* InArry:輸入的數組* InBegin:數組的開始*  InEnd:數組的結束*/void quickSort(int* InArry,int InBegin,int InEnd){  if(InArry == NULL || InEnd <= InBegin)  {    return;  }  int part = 0;  part = getPartion(InArry,InBegin,InEnd);  /* 遞歸調用 */  quickSort(InArry,0,part-1);  quickSort(InArry,part+1,InEnd);}int main(){  int a[] = {49,38,65,97,76,13,27};  int index = 0;  int len = sizeof(a)/sizeof(int);  /* 先遍歷打印一下數組的元素 */  for(index = 0; index < len; index++)  {    printf("%d ",a[index]);  }  printf("/n");  /* 調用快速排序函數 */  quickSort(a,0,len-1);  /* 再遍歷打印一下數組的元素 */  for(index = 0; index < len; index++)  {    printf("%d ",a[index]);  }  printf("/n");  return 0;}

以上就是使用C語言數據結構 快速排序的實例詳解,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站 的支持!

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

圖片精選

主站蜘蛛池模板: 哈巴河县| 南安市| 张家川| 前郭尔| 新津县| 老河口市| 贵阳市| 巴塘县| 娱乐| 上饶市| 武隆县| 略阳县| 峨眉山市| 宁武县| 綦江县| 大竹县| 丰镇市| 余庆县| 涞水县| 榆树市| 威远县| 佛坪县| 勃利县| 济源市| 青铜峡市| 科尔| 皮山县| 龙游县| 浠水县| 盘山县| 抚宁县| 大冶市| 高要市| 孟连| 福泉市| 黄梅县| 海伦市| 万源市| 东兰县| 深圳市| 凉山|