C語言實現插入排序和二分查詢

2021-10-06 05:56:25 字數 912 閱讀 3038

#include

using

namespace std;

// 輸出陣列

void

printall

(int

*arr,

int len)

cout<}// 插入排序

void

insertsort

(int

*arr,

int len)

else

}// 發生了交換

if(arr[i]

!=temp)}}

// 二分查詢

// 應用二分查詢 的前提是必須是有序陣列

intbinarysearch

(int

*arr,

int len ,

int x)

else

if(arr[mid]

else

}return-1

;}intmain()

;// 計算陣列長度

int len =

sizeof

(arr)

/sizeof

(int);

cout<<

"原陣列如下:"

(arr,len)

;insertsort

(arr,len)

; cout<<

"排序後陣列如下:"

(arr,len)

;int x=2;

int index =

binarysearch

(arr,len,x);if

(index !=-1

)else

return0;

}

插入排序和二分查詢

在插入資料時,用二分查詢法查詢資料,而不是一一比較。意外收穫 條件 資料從小到大,假設a a.length 為無窮大。二分查詢時,找不到,則左右索引最後相等,目標資料會比當前索引指向的資料小。public static void insertsortwithbinarysearch int a fo...

二分查詢插入排序

採用二分查詢法,找到需要插入的index,以此改進傳統的插入排序方法,如下 include include include using namespace std const int num 20000 template void initarr vector arr template void p...

二分插入排序和二分查詢

1.二分插入排序 二分插入排序其實是直接插入排序的改進,在前面已排好的佇列中,以二分查詢的形式插入待排序資料 2.二分查詢 在有序序列中查詢值是否存在,是將序列不斷分成兩部分進行查詢 下面直接貼 include 二分插入排序 void binsertsort int a,int c 此時left所在...