排序和查詢

2021-10-04 08:48:32 字數 3917 閱讀 5428

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