大话数据结构——冒泡排序

#include<iostream>
using namespace std;

#define MAX_SIZE 100//用于排序数组个数的最大值

typedef struct
{
	int r[MAX_SIZE+1];//用于存储要排序的数组
	int length;//用于记录顺序表的长度

}sqlist;

//用于交换数组r中下标i和下标j的数组元素的值
void swap(sqlist* L, int i,int j)
{
	int temp;
	temp=L->r[i];
	L->r[i]=L->r[j];
	L->r[j]=temp;
}

//冒泡排序(比较SB的)
int maopaopaixu_SB(sqlist* L)
{
	int len=L->length;
	for(int i=1;i!=len;++i)
	{
		for(int j=i+1;j!=len;++j)
		{
			if(L->r[i]>L->r[j])
				swap(L,i,j);
		}
	}
	return 1;
}

//冒泡排序(正常)
int maopaopaixu_zc(sqlist* L)
{
	int len=L->length;
	for(int i=1;i!=len;++i)
	{
		for(int j=len;j!=i;j--)
		{
			if(L->r[j]<L->r[j-1])
				swap(L,j,j-1);
		}
	}
	return 1;
}

//冒泡排序(优化)
int maopaopaixu_yh(sqlist* L)
{
	int len=L->length;
	int flag=0;
	for(int i=1;i!=len;++i)
	{
		flag=0;
		for(int j=len;j!=i;j--)
		{
			if(L->r[j]<L->r[j-1])
			{swap(L,j,j-1);flag=1;}
		}
		if(flag==0)
			break;
	}
	return 1;
}
int main()
{

}

  

时间: 2024-08-08 00:27:07

大话数据结构——冒泡排序的相关文章

大话数据结构----冒泡排序Bubble sort

冒泡排序是排序算法中最基础的排序算法: 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换 package com.neuedu.java; public class BubbleSort { public static void main(String[] args) { int [] arr=new int[]{0,9,5,45,12,94,56,7}; BubbleSort(arr); for(int i=0;i<arr.length;i++){ System.out.p

《大话数据结构》学习笔记 排序

排序的严格定义:  假设含有n个记录的序列为{r1,r2,......,rn},对应的关键字分别为{k1,k2......,kn},需确定1,2,......,n的一种排列p1,p2,......,pn,使其相应的关键字 满足Kp1<=Kp2<=......Kpn关系,即使得序列成为一个按关键字有序的序列(rpq,rp2,......rpn),此操作称为排序.  排序的稳定性:内排序与外排序(根据记录是否全部放置在内存中). 根据排序中的主要操作,可以分为插入排序类(直接插入排序->希尔

数据结构-冒泡排序

#include <iostream> using namespace std; void BubbleSort(int* a,int n){ for(size_t i=0;i<n;i++){ for(size_t j=0;j<n-i;j++){ if(a[j] > a[j+1]){ int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } } int main() { int a[] = {1,5,8,9,6,4,7,2,3,0}

图的基础算法(大话数据结构笔记)

概述 线性表的每个元素有线性关系,每个数据元素只有一个直接前去和一个直接后继.树的数据元素之间有着明细那的层次关系,并且每层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关.这和一对父母可以有很多孩子,但每个孩子却只能有一对父母是一个道理.可现实中,人与人之间关系复杂,不是简单一对一,一对多的关系.这种复杂关系更适合用图来表示.在图结构中,节点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关.如下图所示:无向边:Edge (vi,vj)有向边:也叫弧,Arc. <v

《大话数据结构》 第一讲.数据结构绪论 (读书笔记)

大话数据结构 导读笔记 第一讲: 一.基本概念和术语 (1)数据元素:是组成数据的.有一定意义的基本单位,在计算机中通常作为整体处理.也被称为记录.   比如,在人类中,什么是数据元素呀?当然是人了. (2)数据项:一个数据元素可以由若干个数据项组成.   比如人这样的数据元素,可以有眼.耳.鼻.嘴.手.脚这些数据项,也可以有姓名.年龄.性别.出生地址.联系电话等数据项,具体有哪些数据项,要视你做的系统来决定. 数据项是数据不可分割的最小单位.在数据结构这门课程中,我们把数据项定义为最小单位,是

【广告】《大话数据结构》在多看书城6月6日中午12点至晚上24点特价销售:0.99元

因多看书城成立两周年举办大促销活动,所以我的图书< 大话数据结构 > 电子版于6月6日中午12点至晚上24点特价销售:0.99元(听说新注册用户送3元,这样就等于一分不花了). 购买地址:http://www.duokan.com/book/44279 希望有兴趣了解和学习数据结构的读者前去购买. 坦白说,对于过去购买<大话数据结构>纸质书的读者,特别是前三次印刷的读者,我是一直心存歉意的.因为我的写作能力有限,加上编辑的疏忽,造成纸质版印刷有不少的错误,尽管大多数读者都给予了好评

大话数据结构读书笔记

大话数据结构读书笔记 编程基础: 数据结构 算法 1 线性表 //顺序储存结构的结构代码: #define MAXSIZE 20//储存空间的起始分配量 typedef int ElemType;//ElemType类型根据实际类型而定,这里假设是int typedef struct{ ElemType data[MAXSIZE];//数组储存元素,最大值为MAXSIZE int length;/线性表当前长度: }SqList; //顺序存储结构需要三个属性: //1存储空间的起始位置:数组d

大话数据结构之php实现单链表

最近想起来两件事1.大话数据结构和大话设计模式 这两本书很有意思,C语言有指针,所以实现起来容易理解,所以突然想到用PHP写一下来熟悉一下数据结构的线性表,不过看的比较慢.一般两三天才看完一部分,毕竟还要工作,老板还安装摄像头看着每天干了啥.....老板事业兴隆,嘻嘻. 线性表的概念不赘述,直接去看大话数据结构,代码也是在参考众多实现方案,比较符合大话数据结构的原本思想,就是基本上还原C语言的实现过程. 直接上代码 线性表 <?php /*  *文件名:linearList.php   * 功能

链栈--(大话数据结构97页)

//链栈的实现 --大话数据结构99页 #include <iostream> using namespace std; //链节点定义 typedef struct stacknode { int data; struct stacknode * next; }StackNode, *LinkStackptr; //定义链栈,头指针 和 长度 struct LinkStack{ LinkStackptr top; int count; }; //初始化void InitStack(LinkS