首页 > 其他分享 >冒泡排序——C语言描述

冒泡排序——C语言描述

时间:2023-02-03 22:12:13浏览次数:52  
标签:Arr int 22% 冒泡排序 C语言 ------- ---------- Test 描述

冒泡排序——C语言描述

目录

0 测试用例框架

https://blog.csdn.net/m0_59469991/article/details/127137119?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127137119%22%2C%22source%22%3A%22m0_59469991%22%7D

1 定义

​ 像冒泡一样,每次把最大的或者最小的元素移到最上面,每轮移动的总数减1。

2 代码

/*BubbleRank*/
//{1, 3, 2, 5, 4, 0};
//3, 2, 4, 1, 5
void BubbleRank(int *Arr, int Num) {
	int i = 0;
	int j = 0;
	int Tmp = 0;

	if (Arr == NULL || Num <= 1) {
		return ;
	}

	for (i = 0; i < Num - 1; ++i) {
		for (j = 0; j < Num - i - 1; ++j) {
			if (Arr[j] > Arr[j + 1]) {
				Tmp = Arr[j];
				Arr[j] = Arr[j + 1];
				Arr[j + 1] = Tmp;
			}
		}
	}
}

4 测试用例

void TestCmpArr(int *CmpArr, int Num, int *Arr) {
	int Index = 0;
	int CmpNum = 0;

	TestNum++;

	for (Index = 0; Index < Num; ++Index) {
		if (CmpArr[Index] == Arr[Index]) {
			CmpNum++;
		}
	}

	if (CmpNum != Num) {
		FaildNum++;
	}
	else {
		PassNum++;
	}
}

void PrintArr(int *Arr, int Num) {
	int i = 0;
	for (i = 0; i < Num; i++) {
		printf("Arr[%d] = %d\n", i, Arr[i]);
	}
}

/*TestBubbleRank*/
void TestBubbleRank(void) {
	/*Test01: Normal*/
	int Arr01[] = { 1, 3, 2, 5, 4, 0 };
	int Num01 = 6;
	int CmpArr01[] = { 0, 1, 2, 3, 4, 5 };

	/*Test02: Only 1 Mem*/
	int Arr02[] = { 0 };
	int Num02 = 1;
	int CmpArr02[] = { 0 };


	printf("-------Test start----------\n");
	InitNum();

	/*Test01*/
	printf("\n-------Test 01----------\n");
	BubbleRank(Arr01, Num01);
	PrintArr(Arr01, Num01);
	TestCmpArr(CmpArr01, Num01, Arr01);

	/*Test02*/
	printf("\n-------Test 02----------\n");
	BubbleRank(Arr02, Num02);
	PrintArr(Arr02, Num02);
	TestCmpArr(CmpArr02, Num02, Arr02);

	/*Test Result*/
	printf("\n-------Test result----------\n");
	TestResult();
}

打印结果

-------Test start----------

-------Test 01----------

Arr[0] = 0

Arr[1] = 1

Arr[2] = 2

Arr[3] = 3

Arr[4] = 4

Arr[5] = 5

-------Test 02----------

Arr[0] = 0

-------Test result----------

Print test result;

TestNum = 2, PassNum = 2, FaildNum = 0

标签:Arr,int,22%,冒泡排序,C语言,-------,----------,Test,描述
From: https://www.cnblogs.com/meditatorss/p/17090576.html

相关文章

  • C语言-猜数游戏
    整理文件发现以前写的C语言猜数游戏1-效果演示2-程序#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){ srand(time(0)); intnumber=rand......
  • C语言笔记
    分支语句(选择结构)1.if语句悬空else(else只会与离他最近的未匹配的if匹配!)就近原则养成习惯,每个if后加{}intmain(){ inta=0; intb=2; if(a==1) if(b==......
  • 【C语言】程序的翻译环境和执行环境
    ......
  • C语言-链表流星雨(EsayX)
    刷B站看到的,做个玩玩。IDE:VisualStudio2022。依赖EsayX图形库1-效果 2-程序/*链表流星雨单文件版本依赖EsayX图形库*/#include<stdio.h>#include<stdlib.h>......
  • C语言小项目-通讯录的实现
    contact.h#defineMAX1000#defineMAX_NAME20#defineMAX_SEX5#defineMAX_TELE12#defineMAX_ADDR30enumopt{EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT};......
  • 枚举以及联合体--C语言版
    枚举的定义枚举顾名思义就是一一列举。把可能的取值一一列举。一周的星期一到星期日是有限的7天,可以一一列举。性别有:男、女、保密,也可以一一列举。月份有12个月,也可以......
  • C语言extern和static
    下面的代码段说明了变量和形式参数声明中怨念或者省略存储类型的所有可能的方法。inta;externintb;staticintc;voidf(intd,registerinte){autointg......
  • C语言学习: 快速排序(递归方式)
    1#include<stdio.h>2#include"io_utils.h"3#include<stdlib.h>4#include<time.h>56#definePLAYER_COUNT5078voidSwapElements(intarray[......
  • C语言学习: 数组打乱
    1#include<stdio.h>2#include"io_utils.h"3#include<stdlib.h>4#include<time.h>56#definePLAYER_COUNT5078voidSwapElement(intarray[]......
  • C语言学习 字符串
    如果文件编码是GBK,那么他会编译成GBK编码,存储起来。   内存里面这么存储。中文是GBK编码存储,而数字和英文,是以unicode编码存储   GBK编码查询   宽......