冒泡排序的思想:
冒泡排序是一种的最简单的排序方法,他的思想是通过不断的比较数组中前后两个元素的大小,找出数组无序部分的最大值或者最小值,并且将该元素放在数组无序部分的最后。第一次循环可以看成是整个数组无序 ,所以放数组最后。
外循环每执行一次,就会将没有排序的的部分中最大或者最小的元素找出放在没有排序的部分最后的位置,内循环负责未排序部分,相邻元素之间的比较。
冒泡排序代码实现:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAXLEN 100
//创建数组
void createArr(int arr[], int len) {
int i = 0;
srand((unsigned int)time(NULL));
for (i = 0; i < len; i++) {
arr[i] = rand() % MAXLEN;
}
return;
}
//打印数组
void printArr(int arr[], int len) {
int i = 0;
for (i = 0; i < len; i++) {
printf("%d=%d\n", i + 1, arr[i]);
}
return;
}
//冒泡排序代码
void bubble_sort(int arr[], int len) {
for (int i = 0; i < len; i++) {
for (int j = 1; j < len;j++) //负责未排序部分前后元素之间的比较,不满足排序规则是交换两个元素
{
if (arr[j - 1] > arr[j]) {
int tem = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tem;
}
}
}
return;
}
int main(void) {
printf("Hello World!\n");
int arr[MAXLEN] = {0};
createArr(arr, MAXLEN);
bubble_sort(arr, MAXLEN);
printArr(arr, MAXLEN);
system("pause");
return 0;
}