幾種排序演算法的實現

2021-10-22 12:43:58 字數 1089 閱讀 4875

氣泡排序演算法

@param mutablearray 需要排序的陣列

*/

/**

選擇排序演算法

@param mutablearray 需要排序的陣列

*/- (void)selectionsortarray:(nsmutablearray *)mutablearray }}

}```

#### 3.快速排序演算法

```oc

/** 快速排序演算法

@param array 需要排序的陣列

@param leftindex 左邊的下標

@param rightindex 右邊的下標

*/- (void)quicksortarray:(nsmutablearray *)array

leftindex:(nsinteger)leftindex

rightindex:(nsinteger)rightindex

nsinteger i = leftindex;

nsinteger j = rightindex;

// 記錄基準數

nsinteger key = [array[i] integervalue];

while (i < j)

// 如果比基準數小,則將查詢到的小值調換到i的位置

array[i] = array[j];

// 當在右邊查詢到乙個比基準數小的值時,就從i開始往後找比基準數大的值

while (i < j && [array[i] integervalue] <= key)

// 如果比基準數大,則將查詢到的大值調換到j的位置

array[j] = array[i];

}// 將基準數放到正確位置

array[i] = @(key);

// 遞迴排序

[self quicksortarray:array leftindex:leftindex rightindex:i - 1];

[self quicksortarray:array leftindex:i + 1 rightindex:rightindex];

}```

幾種排序演算法的實現

對陣列int a n 進行直接插入排序 void insertsort int a,int n r j 1 temp 完成下標為i的元素的排序 對陣列a n 進行折半插入排序 void insertsort int a,int n 折半查詢結束 移動元素 for j i j high 1 j a j...

幾種排序演算法實現

class sort include sort.h include sort sort void sort sort void 交換兩個數 inline void sort swap int a,int b 氣泡排序 1.比較相鄰的前後兩個資料,如果前面的資料大於後面的資料,就將兩個資料交換。2.這...

幾種排序演算法的C 實現

插入排序 include define max size 1000 using namespace std 插入排序,pa為指向陣列的指標,n為陣列元素個數 void insert sort int pa,int n pa i key int main else free p1 free p2 合併...