#include <stdio.h>
//数组的冒泡排序
void my_pop_sort(int* arr,int n)
{
int i = 0;
int j = 0;
for(i = 0;i<n-1;i++)
{
for(j = 0;j<n-i-1;j++)
{
if(arr[j]>arr[j+1])
{
arr[j] ^= arr[j+1];
arr[j+1] ^= arr[j];
arr[j] ^= arr[j+1];
}
}
}
}
void my_pop_sort_optimize(int* arr,int n)
{
int i = 0;
int j = 0;
for(i = 0;i<n-1;i++)
{
int flag = 0;
for(j = 0;j<n-i-1;j++)
{
//一次不交换则说明有序
if(arr[j]>arr[j+1])
{
flag =1;
arr[j] ^= arr[j+1];
arr[j+1] ^= arr[j];
arr[j] ^= arr[j+1];
}
}
if(flag == 0)
break;
}
}
void print_arr(int* arr,int n)
{
int i = 0;
for(i = 0;i<n;i++)
{
printf("%d\n",arr[i]);
}
}
int main(int argc, char *argv[])
{
int a[8] = {4,3,6,8,9,2,1,3};
my_pop_sort_optimize(a,8);
print_arr(a,8);
return 0;
}
一维数组冒泡排序及优化
最新推荐文章于 2024-08-27 23:09:17 发布