获取随机数,用于测试排序
需包含 stdlib.h
和time.h
int * getrand(int min, int max, int len)
{
int* arr = (int*)malloc(sizeof(int)*len);
srand(time(NULL));
for(int i=0; i<len; ++i) {
arr[i] = rand()%(max-min+1) + min;
printf("%d ",arr[i]);
}
printf("\n");
return arr;
}
冒泡排序
void bubbleSort(int a[], int n)
{
for(bool sorted=false; !sorted; --n) {
sorted = true; // 每趟循环前都假定已经排序
for(int i=1; i<n; ++i)
if(a[i-1] > a[i]) { // 一旦相邻元素是逆序
swap(a[i-1],a[i]);
sorted = false; // 发现局部逆序,显然不是排序好的
}
}
}