#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//冒泡函数版本1
void wei(int arr[], int size) {
int i = 0;
int a = 9;
for (i = 1; i < size ; i++) {
int j = 0;
for (j = 0; j <a; j++) {
if(arr[j]>arr[j+i])
{
int temp = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
a--;
}
}
}
//冒泡排序的优化 冒泡函数版本2
void wei(int arr[], int size) {
int i = 0;
int a = size - 1;
for (i = 1; i < size; i++) {
int flag = 1;//添加一个变量
int j = 0;
for (j = 0; j < a; j++) {
if(arr[j]>arr[j+i])
{
int temp = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = 0;//通过变量值反馈 这一趟排序中是否存在乱序 如果存在乱序 值=0 循环将继续
进行下一趟循环 如果这一趟并没有执行if语句 说明没有乱序 flag也不会改变,接下来会跳出循环
}
}
a--;
if (flag == 1) {
break;
}
}
}
int main() {
int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
int size = sizeof(arr) / sizeof(arr[0]);
int i = 0;
wei(arr, size);
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
论算法的选择和程序优化的重要性