1.氣泡排序
氣泡排序的本質在於交換,即每次通過交換的方式把當前剩餘元素的最大值移動到另一端,而當剩餘元素減少為0時,排序結束。
#include
intmain()
;for
(int i=
1;i<=
4;i++)}
}for
(int i=
0;i<
5;i++
)return0;
}
2.順序查詢
沒有排序:只能順序查詢,速度慢。
#include
using
namespace std;
intsequentialsearch
(int
*a,const
int n,
const
int x)
;int
main()
;int result;
int num=7;
result=
sequentialsearch
(m,10
,num);if
(result==+1
) cout<<
"沒找到"
cout<<
"在m["
<"]找到"
}int
sequentialsearch
(int
*a,const
int n;
const
int x);if
(i==n)
return-1
;}
3.折半查詢(二分查詢)
資料必須先排序,才能使用二分查詢
#include
using
namespace std;
intbinarysearch
(int
*a,const
int x,
const
int n)
;int
main()
;int result;
int sum=7;
result=
binarysearch
(x,num,10)
;if(reslut<0)
cout<<
"沒找到!"
cout<<
"在x["
<"]找到"
}int
binarysearch
(int
*a,const
int x,
const
int n)
return-1
;}
4.遞迴的折半查詢和迭代的折半查詢
#include
using
namespace std;
intbinarysearch_i
(int
*a,const
int x,
const
int n)
;int
binarysearch_r
(int
*a,const
int x,
const
int left,
const
int right)
;int
mian()
;int result;
int num=7;
if((result=
binarysearch_r
(m,num,0,
8))<0)
else
return0;
}int
binarysearch_i
(int
*a,const
int x,
const
int n)
return-1
;}intbinarysearch_r
(int
*a,const
int x,
const
int left,
const
int right)
return-1
;}
5.選擇排序:從當前未排序的整數中找到乙個最小的整數,將他放在已排序的整數列表的最後。-------要點:選擇最小的
#include
using
namespace std;
void
selectsort
(int
*a,const
int n)
;int
main()
;selectsort
(x,10);
for(
int i=
0;i<
10;i++
) cout<
}void
selectsort
(int
*list,
const
int n)
swap
(list[i]
,list[min]);
}}
6.排列組合(permutations)用遞迴寫的
#include
using
namespace std;
int c1=0;
int c2=0;
void
permutations
(char
*p,const
int k,
const
int m)
else}}
intmain()
7.插入排序:低階排序中速度最快的
#include
using namespce std;
void
insertionsort
(int
*a,int n)
;int
main()
;insertionsort
(x,10);
for(
int i=
0;i<
10;i++
) cout<
}void
insertionsort
(int
*a,int n)
; a[in]
=temp;
}}
函式模板
templatevoid insertionsort(t* a,int n)
快速排序
#include
using namespce std;
template
<
class
t>
void
quicksort
(t*a,
const
int left,
const
int right)
whlie
(iswap(a)
;//遞迴
quicksort
(a,left,j-1)
;quicksort
(a,j+
1;right);}
}int
main()
;quicksort
(k,0,9
);for(
int i=
0;i<
11;i++
) cout<
}
查詢和排序
二分查詢演算法 def search list,m low 0 high len list 1 while low high mid low high 2 if list mid m high mid 1 elif list mid m low mid 1 else return mid retur...
排序和查詢
1 氣泡排序 雞尾酒排序 選擇排序 插入排序 快速排序 include 氣泡排序 voidmaopao int a,int n int i,j for i 0 i n 1 i for j 0 j n 1 i j if a j a j 1 swap a,j,j 1 交換兩個數 void swap in...
查詢和排序
題目描述 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。思路 折半查詢。如果a mid 大於a right left ...