C語言中使用快速排序算法對元素排序的實例
很多朋友對如何在C語言中使用快速排序算法對元素排序存在疑惑,下面小編為大家整理了C語言中使用快速排序算法對元素排序的實例,希望能幫到大家!
調用C語言的快速排序算法qsort();
#include#include#include#define SIZE 100//從小到大排序int comp1(const void *x,const void *y){ return *(int *)x - *(int *)y;}//從大到小排序int comp2(const void *x,const void *y){ return *(int *)y - *(int *)x;}void main(){ int arr[SIZE]; int n = 0; //數組的`有效長度 int t = 0; int i; printf("input the arr(Q to quit).n"); while( (t = scanf("%d",&arr[n])) != 0) { n++; } printf("arr before qsort.n"); for(i = 0; i < n; i++) { printf("arr[%d]=%dt",i,arr[i]); if((i+1) % 5 == 0) { printf("n"); } } qsort(arr,n,sizeof(int),comp1); printf("narr after qsort.n"); for(i = 0; i < n; i++) { printf("arr[%d]=%dt",i,arr[i]); if((i+1) % 5 == 0) { printf("n"); } } qsort(arr,n,sizeof(int),comp2); printf("nRecover All.n"); for(i = 0; i < n; i++) { printf("arr[%d]=%dt",i,arr[i]); if((i+1) % 5 == 0) { printf("n"); } }printf("n");}
只帶兩個參數的快速排序:
編寫快速排序,函數qsort(),函數只帶兩個參數
#include#include#include#define LEN 10typedef int dataType;//初始化數組,數組元素為小於100的整數void intiArr(dataType A[], int len);//打印數組元素void print(dataType A[], int len);//帶兩個參數的快排void qsort(dataType A[], int len);int main(){ dataType data[LEN]; intiArr(data,LEN); printf("排序前數組元素:"); print(data,LEN); qsort(data,LEN); printf("排序後數組元素:"); print(data,LEN); return 0;}
初始化數組,數組元素為小於100的整數
void intiArr(dataType A[], int len){ int i; srand((unsigned)time(NULL)); for(i = 0; i < len; i++) { A[i] = rand() % 100; }}
打印數組元素
void print(dataType A[], int len){ int i; for(i = 0; i < len; i++) { if(i % 5 == 0) printf("n"); printf("%dt",A[i]); } printf("n");}
帶兩個參數的快排
void qsort(dataType A[], int len){ dataType *p = A; dataType *q = A + len - 1; dataType temp = *p;; if(len <= 0) { return ; } while(p < q) { while((p < q) && (*q >= temp)) { q--; } *p = *q; while((p < q) && (*p <= temp)) { p++; } *q = *p; } *p = temp; qsort(A,p - A); qsort(p + 1,len - (p - A) - 1);}
-
2017年3月計算機二級C語言考試摸底測試題
以下是yjbys考試網小編整理的2017年3月計算機二級C語言考試摸底測試題,希望對大家有所幫助,祝大家計算機二級考試順利通過。一、選擇題(每小題1分。)(1)程序流程圖中帶有箭頭的線段表示的是()。A.圖元關係B.數據流C.控制流D.調用關係(2)結構化程序設計的基本原則...
-
C語言if else語句彙總
對於很多情況,順序結構的代碼是遠遠不夠的,大家都接觸過C語言吧,下面是小編為大家整理的C語言ifelse語句,希望對大家有所幫助。C語言ifelse語句在C語言中,使用if和else關鍵字對條件進行判斷。請先看下面的代碼:#includeintmain(){intage;printf("請輸入你的年齡:");sc...
-
C語言精選面試題詳解
C語言是IT編程中最基礎的語言,在面試中,基本可以忽略又或者格外重要。下面是小編為大家整理的C語言精選面試題詳解,歡迎參考~分析這些面試題,本身包含很強的趣味性;而作為一名研發人員,通過對這些面試題的深入剖析則可進一步增強自身的內功。試題1:以下是引用片段:voi...
-
2017年計算機二級考試C語言備考題及答案
計算機二級對於很多考生來説還是比較有難度的,那麼怎樣順利通過二級考試呢?這就需要大家平時多練習和找方法了。以下是本站小編整理的2017年計算機二級考試C語言備考題及答案,希望對大家有幫助!1.(A)是構成C語言程序的基本單位。A、函數B、過程C、子程序D、子例...