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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

选择排序二分搜索

發布時間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 选择排序二分搜索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

博主不定期更新【保研/推免、C/C++、5G移動通信、Linux、生活隨筆】系列文章,喜歡的朋友【點贊+關注】支持一下吧!


選擇排序C語言實現

#include <stdio.h>int main() {int a[] = {1,5,4,2,6,3,8,15,20,18,19,7,16,13,17,14,12,10,11,9} ;int len = sizeof(a) / sizeof(a[0]);int k;for (k=len-1; k>0; k--){//尋找最大的數,也可以把下面這段寫成一個子函數,在這里調用int maxid = 0;int i;for ( i=0; i<k+1; i++){if (a[i] > a[maxid]){maxid = i;}}//將最大的數與最后一位數交換int t = a[maxid];a[maxid] = a[k];a[k] = t;} //輸出排序完成后的結果int j;for ( j=0; j<len; j++){printf("%d ", a[j]); }return 0; }

二分搜索C語言實現

前提條件:搜索數據已經排好序

#include <stdio.h>int search (int key, int a[], int len); int main() {int key = 15;int a[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};int r = search(key, a, sizeof(a)/sizeof(a[0]));printf("%d", r);return 0; } //二分查找函數 int search (int key, int a[], int len) {int ret = -1;//找到則輸出在數組中的下標,找不到輸出-1int left = 0;int right = len-1;while (right >= left) //注意循環條件,如果寫成right>left,搜索邊界值時會出錯{int mid = (left + right)/2;if ( a[mid] == key){ret = mid;break;}else if( a[mid] > key){right = mid - 1;}else{left = mid + 1;}}return ret; }

總結

以上是生活随笔為你收集整理的选择排序二分搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

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