所有排序算法总结:冒泡排序,快速排序,插入排序,归并排序,堆排序,shell排序,选择排序
1. 冒泡排序
很简单的排序,外层循环是n-1趟,内层循环是n-1次两两比较。主要思路:从底部往上冒泡,通过无序区中相邻记录关键字间的比较和位置的交换,使关键字最小的记录如气泡一般逐渐往上“漂浮”直至“水面”。
就是在每一趟内层循环完毕之后,最小的那个值会像气泡一样上浮到第一个位置(从小到大排序),这样循环执行n-1趟,每一趟都是从最后一个值开始进行两两比较,把每趟中的最小的值往上浮。(注意内层循环的终止条件是j>i,因为i之前是已经放置好的有序的最小值)
代码:
static void bubblesort(int* A,int n){ if(A==NULL) return; for (int i=0;i<n-1;++i) { for (int j=n-1;j>i;--j) { if(A[j]<A[j-1]){int temp=A[j];A[j]=A[j-1];A[j-1]=temp;} } cout<<"第"<<i+1<<"趟冒泡排序:"<<endl; for (int i=0;i<n;++i) { cout<<A[i]<<" "; } cout<<endl; } }
时间: 2024-10-13 02:44:02