冒泡排序快速排序C语言

时间:2021-09-03
本文章向大家介绍冒泡排序快速排序C语言,主要包括冒泡排序快速排序C语言使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
 1 void BubbleSort(ElemType A[], int n) {
 2     int i, j, temp;
 3     int flag=1;
 4     for (i = 1; i <= n - 1&&flag; i++) {
 5         flag = 0;//表示在本趟冒泡是否发生交换的标志
 6         for (j = 1; j <= n - i; j++) 
 7             if (A[j] > A[j + 1]) {
 8                 temp = A[j];
 9                 A[j] = A[j + 1];
10                 A[j + 1] = temp;
11                 flag = 1;//发生交换
12             }15     }
16 }
17 //快速排序
18 int QKPass(ElemType A[], int low, int high) {
19     ElemType pivot = A[low];
20     while (low < high)
21     {
22         while (low < high && A[high] >= pivot) --high;
23         A[low] = A[high];
24         while (low < high && A[low] <= pivot) ++low;
25         A[high] = A[low];
26     }
27     A[low] = pivot;
28     return low;
29 }
30 void QuickSort(ElemType *A, int low, int high) {
31     if (low < high) {
32         int pivotpos = QKPass(A, low, high);
33         QuickSort(A, low, pivotpos - 1);
34         QuickSort(A, pivotpos + 1, high);
35     }
36 }
努力的意义就是放眼望去以后都是喜欢的人和事......

原文地址:https://www.cnblogs.com/Lorrained/p/15224951.html