冒泡排序
冒泡排序就是相邻两数进行比较,如果前边的数比后边的数大就做交换,知道交换到后边的两个数,最后一个数便是最大值,就如同冒泡一般;
第一次排序,比较n-1次;确定一个数
第二次排序,比较n-2次;确定2个数
……
第n-1次排序,比较1次;确定n-1个数
第n 次排序, 比较0次;确定n个数;(所以只需要排序n-1次,最后一次不做比较已经确定好了)
void maopao(int *a, int n)
{
for(int i = 0; i < n-1; i++) //排序次数1~n-1次;
{
for(int j = 0; j < n-i-1; j++) //比较次数1~n-i次;
{
if(a[j] > a[j+1]) 在未确认好的数列中两两作比较;前者比后者大,便做交换
{
a[j] = a[j] ^ a[j+1];
a[j+1] = a[j] ^ a[j+1];
a[j] = a[j] ^ a[j+1];
}
}
}
}

浙公网安备 33010602011771号