一.氣泡排序:
1.演算法:
1>.基本思想:在排序過程中對元素進行兩兩比較,越小的元素會經由交換慢慢『』浮『』到陣列的最前面(低下標處),像氣泡一樣慢慢浮起。
2>.本質:
第1趟冒泡:從陣列n-1下標的元素到0下標元素遍歷,比較相鄰元素對,如果後乙個元素小於前乙個元素,則交換。第一趟結束時,最小元素『』浮起『』到達0下標位置。第二趟冒泡:從陣列n-1下標的元素到1下標元素遍歷(因為0下標的已經是最小元素,已經到位,無需再參加比較),比較相鄰元素對,如果後乙個元素小於前乙個元素,則交換。第二趟結束時,本趟最小元素到達1下標位置。以此類推,最多n-1趟冒泡,便可完成排序。
3>.**實現如下:
#include
#define size 10
void
print
(int a,
int n)
void
bubblesort
(int a,
int n)
}int
main()
while
(n<
1||n>size)
;printf
("please input %d elements:\n"
,n);
for(i=
0;i)scanf
("%d"
,&array[i]);
//讀入陣列元素
bubblesort
(array,n)
;//呼叫函式完成排序
print
(array,n)
;return0;
}
//用指標方法對10個整數按由大到小順序排序。用冒泡法進行排序
二.選擇法排序:
1.演算法:
1>.本質:不斷查詢最大(小)元素的過程。
第一次:n個元素中最小的和第乙個元素對換。第二次:n-1個元素中最小的和第二個元素對換。······.第n-1次:最後兩個元素比較,小的放到第n-1個元素的位置上
2>.基本思想:把陣列分為左右兩個半區,左半區為有序子集,右半區為n-1趟選擇。每一趟選擇都在無序子集(右半區)中選擇出最小元素,並與無序子集首元素交換,然後將該元素併入有序子集。共進行n-1趟排序,每趟最多交換一次。
3>.資料結構:陣列,巢狀迴圈,記錄本次查詢最小值下標的變數,交換的中間變數
4>.**實現如下:
#include
void
input
(int
*pa,
int n)
void
sort
(int
*pa,
int n)
if(index!=k)
//如果本趟最小元素沒有到位}}
void
output
(const
int*pa,
int n)
intmain()
while
(n<
1||n>10)
;input
(a,n)
;//呼叫函式,完成輸入
printf
("the original array is:\n");
output
(a,n)
;//呼叫函式,輸出原始陣列
sort
(a,n)
;//呼叫函式,完成排序
printf
("the sorted array is:\n");
output
(a,n)
;//呼叫函式,輸出排序後的陣列
return0;
}
//用指標方法對10個整數按由大到小順序排序。用選擇法進行排序
冒泡法和選擇法
程式的版權和版本宣告部分 檔名稱 fibnacci.cpp 作 者 單虹毓 完成日期 2013 年 12 月 5 日 版本號 v1.0 輸入描述 無 問題描述 冒泡和選擇法 程式輸出 程式輸出 問題分析 include using namespace std void sortascmaopao i...
JAVA中冒泡法排序和選擇法排序
首先,我們先說下冒泡法 以公升序為例,既 1,2,3,4,5這個順序 其原理就是相鄰兩個數相比,如 a i 與a i 1 比較,如果前面的比後面大,則這兩個數交換,把大的數交換給a i 1 小的數交換給a i 下次比較就是a i 1 與 a i 2 繼續上一次的操作,如果後面的大於前面的,則兩個數交...
比較冒泡法和選擇法
先上選擇法和冒泡法 1.選擇法 include int main temp a j a j a min a min temp for i 0 i 9 i printf 4d a i 2.冒泡法 include int main 大的氣泡往下沉,小的氣泡往上浮!注意 是a j 1 還是a j 1 深刻...