日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构排序法之鸡尾酒排序法he快速排序法

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构排序法之鸡尾酒排序法he快速排序法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

雞尾酒排序,也叫定向冒泡排序,是冒泡排序的一種改進。此算法與冒泡排序的不同處在于從低到高然后從高到低,而冒泡排序則僅從低到高去比較序列里的每個元素。他可以得到比冒泡排序稍微好一點的效能。

// 兩兩互換 void swap (int* a, int i, int j) {int tmp;tmp = a[i];a[i] = a[j];a[j] = tmp; }// 雞尾酒法 void tail1 (int* a, int len) {// 初始化邊界int left = 0;int right = len - 1;int i;while (left < right){// 前半輪將最大元素放到最后面for (i = left; i < right; i++){if (a[i] > a[i+1]){swap (a, i, i+1);}}right--; // 右邊界左移一位// 后半輪將最小元素放到最前面for (i = right; i > left; i--){if (a[i-1] > a[i]){swap (a, i, i-1);}}left++; // 左邊界右移一位} }

快速排序(Quicksort)是對冒泡排序的一種改進。
它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

// 兩兩互換 void swap (int* a, int i, int j) {int tmp;tmp = a[i];a[i] = a[j];a[j] = tmp; }// 分區操作,返回基準值的下標 int partition(int *a, int left, int right) {int pivot = a[right];int index = left; // 如果找到一個比基準值小的元素,與下標為index的元素交換int i;for (i = left; i < right; i++){if (a[i] < pivot){swap (a, i, index);index++;}}swap (a, index, right);return index; // 基準值所在位置下標 }void qSort(int *a, int left, int right) {if (left < right){int pivot = partition(a, left, right); // 進行分區操作,找基準值下標qSort (a, left, pivot-1); // 對左邊部分進行快速排序qSort (a, pivot+1, right); // 對右邊部分進行快速排序 } }

總結

以上是生活随笔為你收集整理的数据结构排序法之鸡尾酒排序法he快速排序法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。