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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

1. 排序算法

發布時間:2023/11/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1. 排序算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述?

假定在待排序的記錄序列中,存在多個具有相同的關鍵字的記錄,若經過排序,這些記錄的相對次序保持不變,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,則稱這種排序算法是穩定的;否則稱為不穩定的。

?

?

二、冒泡排序算法

1. 圖解:

2. 代碼:?

#include <iostream> #include <vector> using namespace std;void bubblesort(vector<int>& nums) {int n = nums.size();int flag;for (int j = n - 1; j > 0; --j){flag = 0;for (int i = 0; i < j; ++i){if (nums[i] > nums[i + 1]){swap(nums[i], nums[i + 1]);flag = 1;}}if (flag == 0) break;} }int main() {vector<int> vec;int n;cin >> n;for (int i = 0; i < n; i++){int a;cin >> a;vec.push_back(a);}cout << "排序:";for (auto c : vec)cout << c << " ";return 0; }

?

?

三、選擇排序算法

#include <iostream> #include <vector> using namespace std;void selectsort(vector<int>& res) {int n = res.size(), min;for (int i = 0; i < n - 1; ++i){min = i;for (int j = i + 1; j < n; ++j){if (res[j] < res[min])min = j;}if (i != min)swap(res[i], res[min]);} }int main() {int n;cin >> n;vector<int> data;for (int i = 0; i < n; ++i){int a;cin >> a;data.push_back(a);}cout << "排序:";for (auto c : data)cout << c << " ";return 0; }

?

?

四、直接插入排序算法

1. 動態演示

2. 時間復雜度:

  • 插入排序最好、最壞、平均情況時間復雜度分析

3. 示例代碼:

#include <iostream> #include <vector> using namespace std;void insertSort(vector<int> &num) {int len = num.size(), j;for (int i = 1; i < len; ++i){int key = num[i];j = i - 1;while (j >= 0 && num[j] > key){num[j + 1] = num[j];--j;}num[j + 1] = key;} }int main() {int n;cin >> n;vector<int> num;int s;for (int i = 0; i < n; ++i){cin >> s;num.push_back(s);}insertSort(num);for (auto c : num)cout << c << " "; }

?

?

六、

?

?

可以看到這種結構很像一棵完全二叉樹,本文的歸并排序我們采用遞歸去實現(也可采用迭代的方式去實現)。分階段可以理解為就是遞歸拆分子序列的過程,遞歸深度為logn。

2. 治階段:

再來看看治階段,我們需要將兩個已經有序的子序列合并成一個有序序列,比如上圖中的最后一次合并,要將[4,5,7,8]和[1,2,3,6]兩個已經有序的子序列,合并為最終序列[1, 2, 3, 4, 5, 6, 7, 8],來看下實現步驟。

?

代碼:

?

七、快速排序算法:

?

?

八、堆排序算法:

1. 算法圖解:

  • 圖解堆排序

2. 代碼:?

#include<iostream> #include<vector> #include<algorithm> using namespace std;void heapAdjust(vector<int>& arr, int i, int len) {int left, right, j;while ((left = 2 * i + 1) <= len) //判斷當前父節點有無左節點(即有無孩子節點,left為左節點){right = left + 1; //右節點j = left; //j指針指向左節點if (right <= len && arr[left] < arr[right]) //右節點大于左節點j++; //當前把"指針"指向右節點//將父節點與孩子節點交換(如果上面if為真,則arr[j]為右節點,如果為假arr[j]則為左節點)if (arr[i] < arr[j]) swap(arr[i], arr[j]);else //說明比孩子節點都大,直接跳出循環語句break;i = j;} }void heapSort(vector<int> & arr) {int len = arr.size() - 1;for (int i = len / 2 - 1; i >= 0; i--)heapAdjust(arr, i, len);while (len >= 0){swap(arr[0], arr[len--]); //將堆頂元素與尾節點交換后,長度減1,尾元素最大heapAdjust(arr, 0, len); //再次對堆進行調整} }int main() {vector<int> vec;int n;cin >> n;for (int i = 0; i < n; i++){int a;cin >> a;vec.push_back(a);}heapSort(vec);for (auto c : vec)cout << c << " ";return 0; }

?

總結

以上是生活随笔為你收集整理的1. 排序算法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产欧美一区二区精品久久久 | 日韩欧美综合 | 大地av| 欧美粗暴jizz性欧美20 | 亚洲夜夜爱| 女人张开腿让男人桶爽 | 黑人一级女人全片 | 九色视频丨porny丨丝袜 | 国产男女猛烈无遮挡a片漫画 | 日本一级视频 | 息与子五十路翔田千里 | 国产精品sm调教免费专区 | 在线久 | 精品免费观看 | 香蕉视频一区二区 | 精品无码一区二区三区在线 | 九九热免费 | 永久在线免费观看 | 日韩成人片 | 婷婷五月精品中文字幕 | 欧美激情网站 | 黄色性生活一级片 | 97在线免费 | 蜜臀av免费在线观看 | 日韩激情影院 | 欧美做受高潮 | 日韩免费毛片 | 亚洲国产一区二区三区在线观看 | 亚洲男人的天堂网 | 精品人妻无码一区二区三区换脸 | 午夜网站在线观看 | 亚洲av无码专区首页 | 爱露出 | 97超碰免费在线 | 亚洲免费三区 | 国产丰满美女做爰 | 天堂在线国产 | 亚洲黄色片网站 | 伊人天堂av | www久久99 | 一本久久精品一区二区 | 国产高清免费观看 | 国产免费黄色网址 | 亚洲欧美日韩在线看 | 成人影视免费 | 日韩精品成人免费观看视频 | 九九综合九九 | 国产一卡二卡三卡四卡 | 日本成人激情视频 | 欧美亚洲天堂 | 亚洲女人的天堂 | 欧美另类videossexo高潮 | 欧美一区永久视频免费观看 | 亚洲妇女体内精汇编 | 欧美极品喷水 | 亚洲乱色熟女一区二区三区 | www视频在线观看 | 欧洲亚洲一区二区三区 | 国产一区精品在线观看 | 一区二区三区免费视频观看 | 台湾a级片 | 三级小说视频 | 日本免费一区二区三区 | 五月婷婷网站 | www亚洲精品| 日韩在线播放一区二区 | 国产精品水嫩水嫩 | 欧美另类一区 | 污污av | 欧美激情啪啪 | 哪里可以看毛片 | 500福利视频导航 | 国内毛片毛片毛片毛片 | 国产日本一区二区三区 | 青青草免费观看 | 国产成人精品视频在线 | 成人蜜桃视频 | av毛片在线看 | 熟妇人妻va精品中文字幕 | av在线首页 | 激情久久久久 | 狼人av在线 | 爱爱网站免费 | 8090av| 国产精品资源在线观看 | 国产盗摄视频在线观看 | 香蕉久久久久 | 黄色三级在线播放 | 欧美乱码精品一区二区三区 | 2018自拍偷拍 | 99色影院 | 伊人网在线 | 中文字幕1区 | 欧美日韩免费一区二区 | 欧美福利在线视频 | 有码视频在线观看 | 青少年xxxxx性开放hg | 亚洲射色 | 国产视频在线观看一区 |