个人觉得选择排序和冒泡排序一定会考其中一个,冒泡比例更大,就为自己发一次
#include <stdio.h>
//定义一个打印函数 负责控制台输出
void print(int arr[],int len){
for (int i = 0; i<len; i++) {
printf("%d\t",arr[i]);
}
printf("\n");
}
//冒泡排序
void maoPao(int arr[],int len){
//一共要进行len-1次循环
for (int i=0; i < len-1; i++) {
//每循环一遍 元素之间都进行len - i -1次比较
for (int j = 0; j < len - 1 -i; j++) {
printf("arr[%d]=%d 对比 arr[%d]=%d\t ",j,arr[j],j+1,arr[j+1]);
//若arr[j]>arr[j+1] 若前一位比后一位元素大,则交换顺序
if (arr[j]>arr[j+1]) {
printf("arr[%d]比arr[%d]大,需要交换\t",j,j+1);
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
printf("\n外层第%d次循环\n\n",i+1);
}
}
int main(int argc, const char * argv[]) {
int arr[5] = {45,66,33,37,22};
int len = sizeof(arr)/sizeof(int);
print(arr, len);
maoPao(arr,len);
print(arr, len);
return 0;
}
|
|