亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

冒泡排序,選擇排序,直接插入排序,二分查找排序

2019-11-06 07:24:39
字體:
來源:轉載
供稿:網友

今天繼續對排序做個整理吧 三個簡單排序—冒泡,選擇,直接插入


首先是冒泡排序(Bubble Sort ):

比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對。這步做完后,最后的元素會是最大的數。針對所有的元素重復以上的步驟,除了最后一個。持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較

這里寫圖片描述

時間復雜度 O(n^2) 最優時間復雜度 O(n) 平均時間復雜度 O(n^2)

C語言實現:

//冒泡排序初級版void BubbleSort0(int *arr, int len){ int i; int j; for(i = 0; i < len; i++) { for(j = i + 1; j < len; j++) { if(arr[i] > arr[j]) { Swap(arr,i, j); } } }}//正宗冒泡排序void BubbleSort(int *arr, int len){ int i; int j; for(i = 0; i < len; i++) { for(j = len -1; j >= i; j--) //j從后往前,將小的值交換到i的位置 { if(arr[i] > arr[j]) { Swap(arr, i, j); } } } }//優化冒泡排序_對于已經有序的序列不再進行循環void BubbleSort1(int *arr, int len){ int i; int j; bool flag = true; //增加一個flag作為標記 for(i = 0; i < len && flag; i++) //若flag = true 則退出循環 { flag = false; //初始化為false for(j = len -1; j >= i; j--) { if(arr[i] > arr[j]) { Swap(arr, i, j); flag = true; //如果有數據交換,則flag = ture } } } }

選擇排序(Selection sort):

首先在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續尋找最?。ù螅┰?,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

這里寫圖片描述

時間復雜度 О(n2) 最優時間復雜度 О(n2) 平均時間復雜度 О(n2)

C語言實現如下:

void SelectSort(int *arr, int len){ int i; int j; int min; for(i = 0; i < len; i++) { min = i; //將當前下標作為最小值下標 for(j = i + 1; j < len; j++) { if(arr[i] > arr[j]) { min = j; //找到最小值,將最小值下標給min if(i != min) { Swap(arr, i, min); } } } }}

直接插入排序(Insertion Sort):

通過構建有序序列,對于未排序數據,在已排序序列中從后向前掃描,找到相應位置并插入。插入排序在實現上,通常采用in-place排序(即只需用到O(1)的額外空間的排序),因而在從后向前掃描過程中,需要反復把已排序元素逐步向后挪位,為最新元素提供插入空間。

這里寫圖片描述

時間復雜度 O(n^2) 最優時間復雜度 O(n) 平均時間復雜度 O(n^{2})

C語言實現如下:

void InsertSort(int *arr, int len){ int i; int j; int tmp; for (i = 1; i < len; i++) { tmp = arr[i]; j = i - 1; for (; j >= 0 && arr[j] > tmp; j--) arr[j + 1] = arr[j];//最后一次執行該語句后,跳出當前for循環前,會再一次執行j-- arr[j + 1] = tmp;//執行完上一個語句(即for語句)后,跳出的位置保存在j中,此時arr[j]的值是沒有經過移動的,不能替換,應該替換的是arr[j+1] }}

二分插入排序(BinarySort):

是插入排序的一種變形,由于用到了二分查找算法,所以叫做二分插入排序,這樣關鍵字的比較次數就會減少,數量級為O(nlog^2n),但是元素移動次數還是O(n^2),所以二分插入排序的時間復雜度是O(n^2)。int Binary_Search(int *arr, int len, int key){ int low = 0; int high = len; while (low <= high ) { int mid = (low + high ) / 2; if (arr[mid] > key) { high = mid - 1; } else low = mid + 1; } return low; }//將數組分為倆個區域 //有序區 0 -- (i-1) --> 初始有一個元素//無序區 i -- (len-1)void BinarySort(int *arr, int len){ for (int i = 1; i < len; i++) { int tmp = arr[i]; int index = Binary_Search(arr, i - 1, tmp); for (int j = i; j > index; j--) { arr[j] = arr[j - 1]; } arr[index] = tmp; }}

參考:

二分法插入排序_百度百科 折半插入排序–倆種java實現方法 二分搜索算法-維基百科



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成网7777777国产| 欧美激情在线有限公司| 中文字幕在线观看亚洲| 日韩av电影在线免费播放| 久久亚洲精品小早川怜子66| 精品久久久久久国产| 欧美成人精品在线播放| 亚洲欧美国产制服动漫| 日韩中文字幕在线播放| 久久视频国产精品免费视频在线| 欧美高清不卡在线| 国产精品视频最多的网站| 国产亚洲欧洲高清| 97久久国产精品| 精品国产999| 欧美在线视频导航| 国产精品成人免费视频| 亚洲综合色激情五月| 亚洲男人天堂网站| 亚洲成色777777女色窝| 国产人妖伪娘一区91| 欧美在线一区二区三区四| 亚洲最大av网站| 国产精品久久综合av爱欲tv| 久久久久久午夜| 亚洲xxx视频| 黄网动漫久久久| 国产成人avxxxxx在线看| 国产精品久久99久久| 亚洲乱码一区av黑人高潮| 精品欧美国产一区二区三区| 亚洲一区第一页| 97热在线精品视频在线观看| 欧美成人一区二区三区电影| 成人写真福利网| 91中文字幕在线观看| 欧美高清视频在线播放| 97碰在线观看| 久久久久久久999精品视频| 亚洲xxxx3d| 伊人青青综合网站| 国产免费一区二区三区在线观看| 精品性高朝久久久久久久| 97超视频免费观看| 91日本视频在线| 4388成人网| 亚洲午夜av久久乱码| 久热精品视频在线观看一区| 91成人精品网站| 亚洲精品狠狠操| 国产精品极品美女在线观看免费| 日韩欧美国产高清91| 国产97在线|亚洲| 国产aⅴ夜夜欢一区二区三区| 色av中文字幕一区| 欧美精品第一页在线播放| 136fldh精品导航福利| 日韩资源在线观看| 亚洲午夜精品视频| 亚洲一区二区三区四区视频| 亚洲综合中文字幕在线| 久久久成人精品视频| 97免费中文视频在线观看| 国产精品久久久久久久久久尿| 亚洲精品国产综合久久| 欧美成aaa人片在线观看蜜臀| 亚洲女人天堂视频| 色婷婷综合成人| 日韩欧美黄色动漫| 91精品国产综合久久香蕉| 欧美日韩美女在线观看| 欧美成年人视频网站欧美| 国产精品久久久久久久久影视| 久久免费视频网站| 伊人亚洲福利一区二区三区| 久久国产精彩视频| 国产精品一区二区三| 欧美大片在线免费观看| 最近2019中文字幕在线高清| 夜夜嗨av色一区二区不卡| 日韩va亚洲va欧洲va国产| 一区二区欧美激情| 亚洲a在线观看| 亚洲a一级视频| 欧美大片免费观看| 国产精品爽黄69| 国产精品国产三级国产专播精品人| 这里只有视频精品| 欧美成人全部免费| 红桃视频成人在线观看| 成人在线小视频| 亚洲国产精品va在看黑人| 色午夜这里只有精品| 国产精品视频地址| 日韩在线观看免费高清完整版| 亚洲精品之草原avav久久| 亚洲深夜福利网站| 成人欧美一区二区三区黑人孕妇| 日韩欧美国产中文字幕| 亚洲免费人成在线视频观看| 国产福利视频一区二区| 午夜精品久久久久久久久久久久久| 久久天天躁日日躁| 亚洲欧美日韩国产精品| 国产精品国内视频| 欧美性猛交xxxx富婆| 日韩精品在线观看网站| 91国偷自产一区二区三区的观看方式| 国产精品久久久久久久久男| 亚洲字幕在线观看| 国产欧美中文字幕| 国产久一一精品| 亚洲成人黄色在线观看| 亚洲女在线观看| 欧美激情精品久久久久久大尺度| 青青精品视频播放| 不卡av日日日| 上原亚衣av一区二区三区| 日本欧美中文字幕| 奇米4444一区二区三区| 一本一本久久a久久精品牛牛影视| 在线国产精品播放| 欧美大胆a视频| 亚洲国产精品小视频| 国产精品18久久久久久麻辣| 亚洲在线www| 中文字幕一区二区精品| 亚洲综合在线中文字幕| 亚洲免费电影在线观看| 亚洲国产精品视频在线观看| 91色中文字幕| 欧美激情视频在线免费观看 欧美视频免费一| 日本精品一区二区三区在线播放视频| 欧美亚洲另类视频| 日韩欧美在线字幕| 亚洲女人天堂视频| 九九精品在线观看| 亚洲精品中文字幕女同| 亚洲精品国精品久久99热一| 77777亚洲午夜久久多人| 国产欧美亚洲视频| 91精品国产91久久久久久最新| 亚洲欧美另类自拍| 亚洲精品电影在线观看| 国产91精品最新在线播放| 中文字幕日韩精品在线| 欧美成人激情视频免费观看| 91av在线免费观看视频| 一个人www欧美| 日韩成人免费视频| 91在线无精精品一区二区| 亚洲第一天堂无码专区| 欧美亚洲日本网站| 亚洲肉体裸体xxxx137| 国产精品一区二区久久| 91精品国产一区| 精品久久久精品| 亚洲区一区二区| 日韩中文理论片| 亚洲福利小视频| 97福利一区二区| 国产精品视频成人| 久久99精品视频一区97| 国产视频丨精品|在线观看|