linux C 快速排序法
生活随笔
收集整理的這篇文章主要介紹了
linux C 快速排序法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h>// 數組長度
#define LENGTH(array) ( (sizeof(array)) / (sizeof(array[0])) )/** 快速排序** 參數說明:* a -- 待排序的數組* l -- 數組的左邊界(例如,從起始位置開始排序,則l=0)* r -- 數組的右邊界(例如,排序截至到數組末尾,則r=a.length-1)*/
void quick_sort(int a[], int l, int r)
{if (l < r){int i,j,x;i = l;j = r;x = a[i];while (i < j){while(i < j && a[j] > x)j--; // 從右向左找第一個小于x的數if(i < j){//a[i++] = a[j];a[i] = a[j];i++;}while(i < j && a[i] < x)i++; // 從左向右找第一個大于x的數if(i < j){a[j] = a[i];j--;}}a[i] = x;quick_sort(a, l, i-1); /* 遞歸調用 */quick_sort(a, i+1, r); /* 遞歸調用 */}
}void main()
{int i;int a[] = {30,40,60,10,20,50};int ilen = LENGTH(a);printf("before sort:");for (i=0; i<ilen; i++)printf("%d ", a[i]);printf("\n");quick_sort(a, 0, ilen-1);printf("after sort:");for (i=0; i<ilen; i++)printf("%d ", a[i]);printf("\n");
}
?
轉載于:https://www.cnblogs.com/yuwensong/p/3885391.html
總結
以上是生活随笔為你收集整理的linux C 快速排序法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: body标签下莫名奇妙多了一行空行,原来
- 下一篇: Linux下安装G++