首页 > 其他分享 >冒泡排序

冒泡排序

时间:2022-12-12 12:22:25浏览次数:41  
标签:tmp arr int 冒泡排序 ++ 数组 printf

void bubble_sort(int arr[], int n)
{
int i, j, tmp;
for (i = 0; i < n; i++)
{
int flag = 1;
for (j = 0; j < n - 1-i; j++)//n个元素,两两对比,
//只需要进行n-1次对比即可;一趟对比执行完后,
//最大值放在末尾,下一趟依次减少对比次数;
//就可以达到升序排列的目的
{
if (arr[j] > arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];//较小值往前传
arr[j + 1] = tmp;//较大值往后传
flag = 0;//完成交换说明数组不是有序数列;
//排列程序继续执行
}
}
if (flag == 1)//说明排序已经完成;
{
break;//跳出第一个for循环
}
}
}

int main()
{
int i, j, arr[7], ret;// 数组里面\0占一个字符,所以为7
printf("请输入6个数字:\n");
for (i = 0; i < 6; i++)
{
scanf("%d", &arr[i]);
}
int sz = sizeof(arr) / sizeof(arr[0])-1;
bubble_sort(arr, sz);//数组调用函数,
//传的是第一个元素的指针即*arr,
//所以要在调用函数前计算好数组元素的个数
//for(i = 0;i < 6;i++)
//{
// for (j = 0; j < 5 - i; j++)//数组为六个值,
// //数组下标值最大为5,
// //为保证下方j+1下标值最大为5,
// //所以此时满足条件5-i;
// {
// if (arr[j] > arr[j + 1])
// {
// {
// ret = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = ret;
// }
// }
// }
//}
//冒泡数组排序
printf("这6个数字从小到大排序:\n");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}

标签:tmp,arr,int,冒泡排序,++,数组,printf
From: https://www.cnblogs.com/zrk-8008/p/16975718.html

相关文章

  • 冒泡排序
    冒泡排序图解代码实现packagecom.wiselee.sort;importjava.util.Arrays;/***@PROJECT_NAME:DataStruct*@DESCRIPTION:*@USER:28416*@DATE:2022/......
  • 冒泡排序新方式
    #Startwithalistofnumbersthatain'tsortednumbers=[0,5,1,4,2,8]#Keeptrackofwhetheranyswapsweremadeonthepreviousiteration#Ifnoswapswer......
  • 冒泡排序算法详解C++程序
    (1)冒泡排序算法:(BubbleSort)首先肯定是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到......
  • 只会用 Go 写 O(N²) 的冒泡排序算法?来看看优化后最好情况下的 O(N) 算法吧
    耐心和持久胜过激烈和狂热。哈喽大家好,我是陈明勇,今天分享的内容是使用Go实现冒泡排序算法。如果本文对你有帮助,不妨点个赞,如果你是Go语言初学者,不妨点个关注,一起成长一......
  • 经典算法冒泡排序之标志位优化版
    前言今天总结一下优化版的经典算法——冒泡排序,不同于以往的暴力二重for循环,这里的冒泡排序增加了一个标志位。我们要理解该冒泡排序的概念,算法流程与算法思想,探讨时间复杂......
  • 三种基本排序方法之选择排序、冒泡排序、插入排序
    前言三种最基本的排序方法:选择排序、冒泡排序、插入排序。这些排序并不是学习数据结构时才碰到的,早在学习C++时教材上就有介绍。现在正在学习数据结构,复习并且自己动手实......
  • 冒泡排序
    本文主要介绍冒泡排序int[]arr={10,23,1,34,22};图解冒泡排序过程由此得出总的排序趟数是数组元素个数-1(最后一个元素无需进行排序),每趟排序过程中进行比较次数......
  • 冒泡排序
    冒泡排序是一种交换排序#include<iostream>usingnamespacestd;voidbubble_sort(inta[],intn){for(inti=0;i<n;i++){//外循环,趟数//内循环/......
  • 利用Python手把手带上实现冒泡排序
    前言之前写过一篇关于Python算法分析的文章--《​​利用Python浅尝算法分析​​》,想要学好计算机,数据结构和算法几乎是无法回避的课题,因为我们学习编程第一节课老师都会......
  • 冒泡排序、快速排序
    冒泡排序、快速排序都属于交换排序,快速排序对冒泡排序优化。冒泡排序 (1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较......