最近在总结排序算法,今天抽空写了一个简单的冒泡排序。
简单明了,以备今后回顾。 14年11月18日
#include <iostream>
#include <iomanip>
using namespace std;
#define Size 10
#define False 0
#define True 1
typedef int DataType;
void Orderedlist(DataType digit[]);
void PaintOrderedlist(DataType digit[]);
int main(void)
{
DataType digit[Size] = {
89, 53, 32, 34, 12,
45, 14, 16, 56, 23};
PaintOrderedlist(digit);
Orderedlist(digit);
PaintOrderedlist(digit);
return 0;
}
/*
冒泡:
(1) 小数向大数冒泡
(2)大数向小数冒泡
*/
void Orderedlist(DataType digit[])
{
cout<<"After sort..."<<endl;
bool swap = False;
DataType temp;
int i;
int j;
for(i = 0; i < Size-1; i++)// i < Size and i < Size-1 all are ok
{
swap = False;
for(j = Size-1; j > i; j--) //最好从后往前排
{
if(digit[j-1] > digit[j])
{
temp = digit[j];
digit[j] = digit[j-1];
digit[j-1] = temp;
swap = True;
}
}
if(!swap) break;
}
}
void PaintOrderedlist(DataType digit[])
{
for(int i = 0; i < Size; i++)
cout<<digit[i]<<setw(3);
cout<<endl;
}