二分查詢和排序

2021-08-30 06:23:58 字數 1632 閱讀 2808

二分查詢,主要是針對排序問題進行查詢

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...