冒泡排序的思路:以升序为例,将数列中的第一个数拿出来,依次后后面的比较,如果比后面的数大,那么久交换,直到比较到最后一个,当这一趟比较结束后,第一个数就是最小的。然后再取第二个数,同样的依次和后面的数比较,比较结束后,这个数据就是第二小的,后面的就是依次类推。
C语言中两个for循环即可实现。
#include "stdafx.h"
#include <iostream>
using namespace std;
void print(int data[], int n)
{
for (int i = 0; i < n; i++)
{
cout << data[i] << " ";
}
cout << endl;
}
void bubble_ascending_sort(int data[], int n)
{
int i = 0, j = 0, temp = 0, d = 0;
for (i = 0; i < n; i++)
{
for (j = (i + 1); j < n; j++)
{
if (data[i] > data[j])
{
temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
}
void bubble_desending_sort(int data[], int n)
{
int i = 0, j = 0, temp = 0, d = 0;
for (i = 0; i < n; i++)
{