二分查詢,主要是針對排序問題進行查詢
len = sizeof(a) / sizeof(a[0])
我們先設定
int left = 0;
int right = len - 1;
int mid = (left + right ) / 2;
如果k大於mid,那麼 left = mid + 1;
小於 right = mid -1;
#include int search( int key, int a, int len )
else if ( a[mid] > k )
else
} return ret;
}int main()
; int len = sizeof(a) / sizeof(a[0]);
int respond = 0;
respond = search( 7, a, len );
printf("%d\n",respond);
return 0;
}
那麼如果我們碰到不是按順序排列的陣列,如何辦呢?
我們可以先排序然後再進行二分查詢
}完整的**為
#include int max( int a, int len )
} return maxid;
}int search( int key, int a, int len )
else if ( a[mid] > k )
else
} return ret;
}int main()
; int len = sizeof(a) / sizeof(a[0]);
for ( int i = len - 1; i > 0; i-- )
for ( int i = 0; i < len; i++ )
printf("\n");
int respond = 0;
int k;
printf("input you want to know element: \n");
respond = search(k, a, len );
printf("the way is: %d\n", respond );
return 0;
}
二分查詢排序
static final int n 15 static void quicksort int arr,int left,int right 快速排序演算法 if ltemp rtemp ltemp if leftx high mid 1 else low mid 1 return 1 未找到 pu...
排序 二分查詢
實現歸併排序 快速排序 插入排序 氣泡排序 選擇排序 堆排序 選做 完成leetcode上的返回滑動視窗中的最大值 239 這是上一期第三天的任務進行保留 涉及佇列可以對第二天進行整理複習 程式設計實現 o n 時間複雜度內找到一組資料的第 k 大元素 def insert sort alist n...
氣泡排序和二分查詢
氣泡排序 public class bubblesorttest public static void bubblesort int array for int i 0 i array.length 1 i 其實此處可以換成i是最大的 for int j 0 j array.length i 1 j...