色噜噜人体337p人体 I 超碰97观看 I 91久久香蕉国产日韩欧美9色 I 色婷婷我要去我去也 I 日本午夜a I 国产av高清怡春院 I 桃色精品 I 91香蕉国产 I 另类小说第一页 I 日操夜夜操 I 久久性色 I 日韩欧在线 I 国产深夜在线观看 I 免费的av I 18在线观看视频 I 他也色在线视频 I 亚洲熟女中文字幕男人总站 I 亚洲国产综合精品中文第一 I 人妻丰满熟av无码区hd I 新黄色网址 I 国产精品真实灌醉女在线播放 I 欧美巨大荫蒂茸毛毛人妖 I 国产一区欧美 I 欧洲亚洲1卡二卡三卡2021 I 国产亚洲欧美在线观看三区 I 97精品无人区乱码在线观看 I 欧美妇人 I 96精品在线视频 I 国产人免费视频在线观看 I 91麻豆国产福利在线观看

各種排序方法復(fù)雜度總結(jié)

時(shí)間:2021-03-29 17:20:22 總結(jié) 我要投稿

各種排序方法復(fù)雜度總結(jié)

  在C中,排序算法是最基本最常用的算法,不同的排序算法在不同的場景或應(yīng)用中會有不同的表現(xiàn),接下來小編搜集了各種排序方法復(fù)雜度總結(jié),歡迎查看。

各種排序方法復(fù)雜度總結(jié)

  一、冒泡排序

  主要思路是:

  通過交換相鄰的兩個(gè)數(shù)變成小數(shù)在前大數(shù)在后,這樣每次遍歷后,最大的數(shù)就“沉”到最后面了。重復(fù)N次即可以使數(shù)組有序。

  代碼實(shí)現(xiàn)

  void bubble_sort(int arr[], int len)

  {

  for (int i = 0; i < len — 1; i++)

  {

  for (int j = len — 1; j >= i; j——)

  {

  if (arr[j] < arr[j — 1])

  {

  int temp = arr[j];

  arr[j] = arr[j — 1];

  arr[j — 1] = temp;

  }

  }

  }

  }

  冒泡排序改進(jìn)1:

  在某次遍歷中,如果沒有數(shù)據(jù)交換,說明整個(gè)數(shù)組已經(jīng)有序,因此通過設(shè)置標(biāo)志位來記錄此次遍歷有無數(shù)據(jù)交換就可以判斷是否要繼續(xù)循環(huán)。

  冒泡排序改進(jìn)2:

  記錄某次遍歷時(shí)最后發(fā)生數(shù)據(jù)交換的位置,這個(gè)位置之后的數(shù)據(jù)顯然已經(jīng)有序。因此設(shè)置標(biāo)志位記錄每次遍歷中最后發(fā)生數(shù)據(jù)交換的位置可以確定下次循環(huán)的范圍。

  二、直接插入排序

  主要思路是:

  每次將一個(gè)待排序的'數(shù)組元素,插入到前面已排序的序列中這個(gè)元素應(yīng)該在的位置,直到全部數(shù)據(jù)插入完成。類似撲克牌洗牌過程。

  代碼實(shí)現(xiàn)

  void _sort(int arr[], int len)

  {

  for (int i = 1; i < len; i ++)

  {

  int j = i — 1;

  int k = arr[i];

  while (j > —1 && k < arr[j] )

  {

  arr[j + 1] = arr[j];

  j ——;

  }

  arr[j + 1] = k;

  }

  }

  三、直接選擇排序

  主要思路是:

  數(shù)組分成有序區(qū)和無序區(qū),初始時(shí)整個(gè)數(shù)組都是無序區(qū),每次遍歷都從無序區(qū)選擇一個(gè)最小的元素直接放在有序區(qū)最后,直到排序完成。

  代碼實(shí)現(xiàn)

  void select_sort(int arr[], int len)

  {

  for (int i = 0; i < len; i++)

  {

  int index = i;

  for (int j = i + 1; j < len; j++)

  {

  if (arr[j] < arr[index])

  index = j;

  }

  if (index != i)

  {

  int temp = arr[i];

  arr[i] = arr[index];

  arr[index] = temp;

  }

  }

  }

  四、快速排序

  主要思路是:

  “挖坑填數(shù) + 分治法”,首先令i = L;j = R;將a[i]挖出形成打一個(gè)坑,稱a[i]為基準(zhǔn)數(shù)。然后j——從后向前找到一個(gè)比基準(zhǔn)數(shù)小的數(shù),挖出來填到a[i]的坑中,這樣a[j]就形成了一個(gè)新的坑,再i++從前向后找到一個(gè)比基準(zhǔn)數(shù)大的數(shù)填到a[j]坑中。重復(fù)進(jìn)行這種挖坑填數(shù),直到i = j。這時(shí)a[i]形成了一個(gè)新的坑,將基數(shù)填到a[i]坑中,這樣i之前的數(shù)都比基準(zhǔn)數(shù)小,i之后的數(shù)都比基準(zhǔn)數(shù)大。因此將數(shù)組分成兩部分再分別重復(fù)上述步驟就完成了排序。

  代碼實(shí)現(xiàn)

  void quick_sort(int arr[], int left, int right)

  {

  if (left < right)

  {

  int i = left, j = right, target = arr[left];

  while (i < j)

  {

  while (i < j && arr[j] > target)

  j——;

  if (i < j)

  arr[i++] = arr[j];

  while (i < j && arr[i] < target)

  i++;

  if (i < j)

  arr[j] = arr[i];

  }

  arr[i] = target;

  quick_sort(arr, left, i — 1);

  quick_sort(arr, i + 1, right);

  }

  }

  五、希爾排序

  主要思路是:

  先將整個(gè)待排元素序列分割成若干個(gè)子序列(由相隔某個(gè)“增量”的元素組成的)分別進(jìn)行直接插入排序,然后依次縮減增量再進(jìn)行排序,待整個(gè)序列中的元素基本有序(增量足夠小)時(shí),再對全體元素進(jìn)行一次直接插入排序。由于希爾排序是對相隔若干距離的數(shù)據(jù)進(jìn)行直接插入排序,因此可以形象的稱希爾排序?yàn)椤疤濉薄?/p>

  六、歸并排序

  主要思路是:

  當(dāng)一個(gè)數(shù)組左邊有序,右邊也有序,那合并這兩個(gè)有序數(shù)組就完成了排序。如何讓左右兩邊有序了?用遞歸!這樣遞歸下去,合并上來就是歸并排序。

  代碼實(shí)現(xiàn)

  void merge(int arr[], int temp_arr[], int start_index, int mid_index, int end_index)

  {

  int i = start_index, j = mid_index + 1;

  int k = 0;

  while (i < mid_index + 1 && j < end_index + 1)

  {

  if (arr[i] > arr[j])

  temp_arr[k++] = arr[j++];

  else

  temp_arr[k++] = arr[i++];

  }

  while (i < mid_index + 1)

  {

  temp_arr[k++] = arr[i++];

  }

  while (j < end_index + 1)

  temp_arr[k++] = arr[j++];

  for (i = 0, j = start_index; j < end_index + 1; i ++, j ++)

  arr[j] = temp_arr[i];

  }

  void merge_sort(int arr[], int temp_arr[], int start_index, int end_index)

  {

  if (start_index < end_index)

  {

  int mid_index = (start_index + end_index) / 2;

  merge_sort(arr, temp_arr, start_index, mid_index);

  merge_sort(arr, temp_arr, mid_index + 1, end_index);

  merge(arr, temp_arr, start_index, mid_index, end_index);

  }

  }

  七、堆排序

  堆排序的難點(diǎn)就在于堆的的插入和刪除。

  堆的插入就是——每次插入都是將新數(shù)據(jù)放在數(shù)組最后,而從這個(gè)新數(shù)據(jù)的父結(jié)點(diǎn)到根結(jié)點(diǎn)必定是一個(gè)有序的數(shù)列,因此只要將這個(gè)新數(shù)據(jù)插入到這個(gè)有序數(shù)列中即可。

  堆的刪除就是——堆的刪除就是將最后一個(gè)數(shù)據(jù)的值賦給根結(jié)點(diǎn),然后再從根結(jié)點(diǎn)開始進(jìn)行一次從上向下的調(diào)整。調(diào)整時(shí)先在左右兒子結(jié)點(diǎn)中找最小的,如果父結(jié)點(diǎn)比這個(gè)最小的子結(jié)點(diǎn)還小說明不需要調(diào)整了,反之將父結(jié)點(diǎn)和它交換后再考慮后面的結(jié)點(diǎn)。相當(dāng)于從根結(jié)點(diǎn)開始將一個(gè)數(shù)據(jù)在有序數(shù)列中進(jìn)行“下沉”。

  因此,堆的插入和刪除非常類似直接插入排序,只不是在二叉樹上進(jìn)行插入過程。所以可以將堆排序形容為“樹上插”。

【各種排序方法復(fù)雜度總結(jié)】相關(guān)文章:

《排序》優(yōu)秀教案課件05-16

排序和篩選說課稿11-04

《有趣的排序》教學(xué)設(shè)計(jì)02-09

大班數(shù)學(xué)模式排序說課稿04-07

高中英語各種文體的寫作練習(xí)方法和要素分析08-23

用各種方法巧妙抒發(fā)感情的小學(xué)寫作技巧06-10

各種圖形剪紙貼畫03-21

各種分類佳句摘抄05-28

元旦各種飲食習(xí)俗01-04

各種道歉信01-05

主站蜘蛛池模板: 一级特黄色大片 | 国产精品19乱码一区二区三区 | 国产黄色片在线免费观看 | www国产精品内射老师 | 亚洲色欲在线播放一区 | 欧美a免费 | 成人av集中营 | 老司机午夜在线 | 中文字幕欧美亚洲 | 亚洲女初尝黑人巨高清 | 一级在线视频 | 亚洲久久久久久中文字幕 | 亚洲欧美日韩综合俺去了 | 先锋中文字幕在线资源 | 久久999热| 999久久久无码国产精品 | 无码 人妻 在线视频 | 午夜福利啪啪体验区 | 性色欲情网站iwww九文堂 | 无码午夜人妻一区二区不卡视频 | 亚洲图片小说区 | 日韩精品卡通动漫网站 | 日韩av免费播放 | 亚洲国产精品成人久久蜜臀 | 免费无码又爽又刺激高潮的动态图 | www.国产二区| 91新视频在线观看 | 欧美综合色免费 | 玖玖啪| 日韩精品一区二区三区四区五区 | 91大神在线观看视频 | 亚洲图女揄拍自拍区 | 日本美女a级片 | 国产一二三四区乱码免费 | 区久久aaa片69亚洲 | 国产精品无码不卡一区二区三区 | 噜噜噜噜狠狠狠7777视频 | av黄色在线 | 好想被狂躁无码视频在线字幕 | 免费网站视频在线观看 | 国产视频在线免费 | 成人av教育| 亚洲欧美日韩一级 | 欧美一级视频在线 | 无码a∨高潮抽搐流白浆 | 中文字幕在线观看亚洲 | 人妻少妇精品专区性色av | 精品一区二区三区欧美 | 久久久一本精品久久精品六六 | 免费中文熟妇在线影片 | 国产熟妇精品高潮一区二区三区 | 午夜婷婷精品午夜无码a片影院 | 国产v亚洲v天堂无码久久久 | 日本高清中文字幕在线观线视频 | 国产午夜精品久久久久久久 | 日本在线视频一区二区三区 | 成人久久久久久久 | 国产成人8x人网站在线视频 | 日韩精品视频在线一区 | 少妇人妻系列无码专区系列 | 亚洲精品一区二区在线观看 | 四十如虎的丰满熟妇啪啪 | 久草在线观看资源 | 男女做污污的事免费 | 国产精品久久久对白 | 中出あ人妻熟女中文字幕 | 成人高清无遮挡免费视频在线观看 | 亚洲欧美国产精品久久久久 | 久久精品中文字幕无码 | 国产成人手机高清在线观看网站 | 国产良妇出轨视频在线观看 | 日韩三级av在线 | 国内精品福利视频 | 国产裸体xxxx视频 | 欧美日韩一区在线观看 | 国产肥熟女视频一区二区三区 | 激情97综合亚洲色婷婷五 | av少妇 | 日韩插插插 | 亚洲 小视频 | 日日噜噜噜夜夜狠狠久久蜜桃 | 3d动漫精品啪啪一区二区免费 | 青青色综合 | 亚洲国产精品久久精品成人网站 | 亚洲美女影院 | 日本人妖aⅴ系列 | 日日噜狠狠噜天天噜av | 亚洲aⅴ乱码精品成人区 | 精品亚洲成a人在线观看 | 无码国产成人午夜视频在线播放 | 成人免费视屏 | 亚洲精品精华液一区二区 | 国产综合高清 | 国产亚洲欧美日韩在线一区二区三区 | 影音av在线| 久久色图| 亚洲一二区制服无码中字 | 一区色| 97超碰成人 |