首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言算法片段集錦:快速排序、隨機陣列生成與基礎操作

     編輯:關於C語言

片段內容整理

原文為幾段不完整的代碼片段,經整理補全如下:

1. 快速排序核心

void quicksort(int a[], int low, int high) {
    if (low >= high) return;
    int pivot = a[low], i = low, j = high;
    while (i < j) {
        while (i < j && a[j] >= pivot) j--;
        if (i < j) a[i++] = a[j];
        while (i < j && a[i] <= pivot) i++;
        if (i < j) a[j--] = a[i];
    }
    a[i] = pivot;
    quicksort(a, low, i-1);
    quicksort(a, i+1, high);
}

2. 隨機陣列生成與輸出

#include <stdlib.h>
#include <time.h>
#define N 20

int main() {
    int a[N];
    srand(time(NULL));
    for (int i=0; i

3. 陣列基本操作封裝建議

// 交換
void swap(int *a, int *b) { int t=*a; *a=*b; *b=t; }

// 打印
void printArray(int a[], int n) {
    for (int i=0; i

常見錯誤提醒

  • rand() 未 srand() → 每次產生相同序列。
  • 快排最壞 O(n²) 發生於已排序陣列,工程上用隨機化枢軸或三數取中。
  • 遞歸深度可能達 O(n),大規模資料建議改寫疊代版或用 qsort。

這些片段涵蓋了 C 語言陣列操作、排序、隨機數的基礎模式,適合初學者練習指標、遞歸與標準庫用法。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved