/*
2010-9-11
快速排序和二分查詢的練習
初始序列為:87654321
快速排序後為:12345678 (l.r[0]位置為哨兵位置,不是序列中的元素,不參與排序和輸出,為快速排序特用)
二分查詢(前提為有序序列)5,返回位置5
*/#include
<
iostream.h
>
typedef
struct
sqlist;
#define
m 8void
initlist(sqlist &l,
intn)
}int
find(sqlist l,
intkey,
intlow,
inthigh)
return-1
;//查詢失敗}/*
int partition ( sqlist &l,int low,int high )
l.r[low]=l.r[0];
return low;
}void qsort ( sqlist &l,int low,int high ) }*/
intpatition(sqlist &l,
intlow,
inthigh)
l.r[low]
=l.r[0];
return
low;
}void
quick(sqlist &l,
intlow,
inthigh)
}void
show(sqlist l)
}void
main()
快速排序和二分查詢的練習
快速排序和二分查詢的練習 初始序列為 87654321 快速排序後為 12345678 l.r 0 位置為哨兵位置,不是序列中的元素,不參與排序和輸出,為快速排序特用 二分查詢 前提為有序序列 5,返回位置5 include typedef struct sqlist define m 8 void...
二分查詢和快速排序
快排的中心思想,就是選取乙個元素通過一趟排序將比這個元素大的換到前面,把這個元素小的換到後面。然後在繼續進行排序。void sort int datas,int low,int high int first low int last high int key datas first while fi...
二分查詢和快速排序
二分查詢的基本思想 二分查詢就是給定乙個已經排序好的陣列,輸入你想查詢的數值,然後對陣列進行折半查詢,找到直接返回在陣列中的位置,否則返回 1。它充分利用了元素間的次序關係,採用分治策略,可在最壞的情況下用o log n 完成搜尋任務。具體實現 1 binarysearch函式傳入已經排序好的陣列 ...