冒泡排序
假设待排序表长为n,从后向前(或从前往后)两两比较相邻元素的值,若为逆序,则交换他们,直到序列比较完,这是一趟冒泡排序,结果是将最小的元素交换到待排序列的第一个位置。下一趟排序的时候,前一趟确定的最小元素不在参与比较,待排序列减少一个元素,每趟冒泡排序的结果是把序列中的最小元素放到了序列的最终位置,……,这样最多做n-1趟冒泡就能把所有的元素排好序。
void BubbleSort(ElemType A[], int n){//用冒泡排序将序列A中的元素按从小到大进行排列for(i=0; i<n-1; i++){flag=false;for(j=n-1; j>i; j--){if(A[j-1].key>A[j].key){swap(A[j-1], A[j]);flag=true;}}if(flag==false)return ;}}
时间复杂度:o(n^2)
稳定排序
浙公网安备 33010602011771号