一日一码01——冒泡排序

2024-03-05 03:38
文章标签 01 冒泡排序 一码 一日

本文主要是介绍一日一码01——冒泡排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一切成功都源于积累!

为痛下决心要改掉眼高手低的毛病,每天一道算法题!

先从最简单的冒泡排序开始吧。


//冒泡排序	2013/09/06
//从小到大排序#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>//每次把最后的数向前比较,小的数从后往前“冒泡”,下次比较仍从最后比起,前面已排序部分无需比较
void soapSort(int* a, int n){int i,j,tmp,flag;for ( i = 0 ; i < n ; i++){flag = 0;for ( j = n - 1 ; j > i ; j-- ){if(a[j] < a[j-1]){tmp = a[j];a[j] = a[j-1];a[j-1] = tmp;flag = 1;}}if(flag == 0){return;}	}
}//每次把前面的数向后比较,大的数从前往后“冒泡”,下次比较仍从前面比起,后面已排序部分无需比较
void soapSort2(int* a, int n){int i,j,tmp,flag;for ( i = 0 ; i < n ; i++){flag = 0;for ( j = 0 ; j < n-i-1 ; j++ ){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 1;}}if(flag == 0){return;}			}
}//错误方法,只是每次把最大的放到最后,前面的数实际上没有排序
void soapSort_error(int* a, int n){int i,j,tmp,flag;for ( i = 0 ; i < n ; i++){flag = 0;for ( j = i ; j < n - 1; j++ ){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 1;}}if(flag == 0){return;}}
}int initArr(int** a){int i,n;srand(time(NULL));printf("Input the size of array:");scanf("%d",&n);*a = (int *)malloc(n*sizeof(int));for(i = 0; i < n; i++){(*a)[i] = rand()%100; //*(*a+i) = rand()%100;}return n;
}void printArr(int* a, int n){int i;for (i = 0;i < n; i++){printf("%d,",a[i]);}printf("\n");
}void main(){int* arr;int n;n = initArr(&arr);//传地址printArr(arr,n);soapSort(arr,n);printArr(arr,n);}


 

这篇关于一日一码01——冒泡排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/775212

相关文章

C++入门01

1、.h和.cpp 源文件 (.cpp)源文件是C++程序的实际实现代码文件,其中包含了具体的函数和类的定义、实现以及其他相关的代码。主要特点如下:实现代码: 源文件中包含了函数、类的具体实现代码,用于实现程序的功能。编译单元: 源文件通常是一个编译单元,即单独编译的基本单位。每个源文件都会经过编译器的处理,生成对应的目标文件。包含头文件: 源文件可以通过#include指令引入头文件,以使

407串口01发送

实验一: 工程。 链接:https://pan.baidu.com/s/1g8DV4yZWOix0BbcZ08LYDQ?pwd=2176 提取码:2176 串口1的使用。发送功能。 单片机发送信息到电脑。 通过串口进行通信。 首先单片机这边。 单片机这边,需要对单片机的串口模块进行使能初始化,设置串口的格式。 单片机和电脑的串口收发格式要配置一致。不然A和B肯定通信不成功,鸡和鸭讲,

大学生自救数据结构与算法(py实现)——01递归

目录 目录 递归 基本概念 工作原理 基本要素 优点 缺点 实现技巧 实例解析:计算阶乘 斐波那契数列 高效的斐波那契数列 python中的最大递归深度 二分查找 基本原理 性能分析 优化与变体 线性递归  元素序列的递归求和 二路递归 二路递归的基本概念 典型应用 工作原理 多重递归  示例:计算卡特兰数(Catalan Number) 尾递

Android自定义view学习笔记01

Android自定义view学习笔记01 昨天看博客的时候看到鸿洋老师的博客里面有关于自定义view的学习教程。一直深感所掌握的东西太少太杂,按照他的Android 自定义View (一)所讲内容,代码实践。根据实际情况稍作修改,并且补充一些在代码过程中知识点,做此笔记。 相关代码 //CustomView01.javapackage mmrx.com.myuserdefinedvi

采药问题 01背包

Description:辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”

冒泡排序php

$arr=array(1,43,54,62,21,32,36,76,39);    function bubblesort($arr){   $len=count($arr);   //冒泡的轮数   //每轮需要冒泡的次数  for($k=1;$k<$len;$k++) {   for($i=0;$i<$len-$k;$i++){      if($arr

Java集合框架-Map-01天

/** Map集合,该集合存储键值对。一对一对往里存。而且要保证键的唯一性* 1,添加* put(K key,V value)* putAll(Map<? extends K,? extends V> m)* 2,删除* clear()* remove(Object key)* 3,判断* containsValue(Object value)* containsValue

排序。。。冒泡排序

#include "shuzu.h"//最简单的冒泡排序实现//输入的是线性表里的实际长度,线性表的结构体的变量指针.void maopao1(int length,sqlist*L){for(int i=1;i<length;i++){for(int j=i+1;j<=length;j++){if(L->Arry[i]>=L->Arry[j]){int temp;temp=L->Arry

Java基础的重点知识-01-基础

文章目录 开发前言Java语言开发环境入门程序说明常量变量和数据类型数据类型转换运算符方法解析 开发前言 常用DOS命令 Java语言的初学者,学习一些DOS命令,会非常有帮助。DOS是一个早期的操作系统,现在已经被Windows系统取代,对于我们开发人员,目前需要在DOS中完成一些事情,因此就需要掌握一些必要的命令。 命令操作符号盘符切换命令盘符名:查看当前文件夹dir进入文

网络游戏服务器编程01 大纲

学了半年cocos2dx,现在想学习服务器开发,但毫无服务器概念。网上搜了下相关资料,找到一本《网络游戏服务器端编程》,接下来几天就按照这本书,开始我的服务器端编程生涯。 废话不多说,先晒晒这本书涵盖了哪些内容 1、网络编程基础 2、多线程 3、高效通信模型 4、加密 5、数据库 6、设计一个游戏大厅 7、GM工具设计与实现 8、自动更新系统的