C语言-数据结构(一)

1.冒泡排序

void sort(int list[], int n) {
     int i, j, temp;
     for (i = 0; i < n - 1; i++) {
         for (j = i; j < n; j++) {
             if (list[i] < list[j]) {
                 temp = list[i];
                 list[i] = list[j];
                 list[j] = temp;
             }
         }
     }
 }

2.二分查找

int binsearch(int *list, int search, int num) {
    int middle;
    int left = 0;
    int right = num - 1;

    while (left <= right) {
        middle = (left + right) / 2;
        if (list[middle] > search) {
            right = middle - 1;
        } else if (list[middle] == search) {
            return middle;
        } else {
            left = middle + 1;
        }
    }

    return -1;
}

递归版本

int binsearch(int *list, int search, int left, int right) {
    int middle;
    if (left <= right) {
        middle = (left + right) / 2;
        if (list[middle] > search) {
            return binsearch(list, search, left, middle - 1);
        } else if (list[middle] == search) {
            return middle;
        } else {
            return binsearch(list, search, middle + 1, right);
        }
    }
    return -1;
}

3.

时间: 2024-09-17 04:30:03

C语言-数据结构(一)的相关文章

读谭浩强C语言数据结构有感(1)

1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元素:数据有集合和元素的区别,集合里的个体就是数据元素,相对应的就是数据结构. 线性表: 说简单一点,就是线性存储结构,每个表中有大量的元素,这些元素在物理位置中都是连接起来的. 这些元素有直接前驱和直接后继.线性表的位置是相邻的. 比如,位置1,位置2,位置3......位置N. 还有一点,线性表的

一些可运行的C语言数据结构代码

网上有很多C语言数据结构代码:有的不能运行:下面是一些能运行的,和运行截图:备用一下: 1 队列 #include<stdio.h> #include<stdlib.h> #define QUEUE_SIZE 50 typedef struct SeqQueue { int data[QUEUE_SIZE]; int front; int rear; }Queue; Queue *InitQueue() { Queue *q = (Queue *)malloc(sizeof(Que

C语言---数据结构(内建,数组,自定义)

数组是一组有序数据的集合,每个元素都属于同一个数据类型. 一维数组的定义: 类型符  数组名[常量表达式] 常量表达式中,可以包括常量和符号常量,int a[3+5]是合法的.但是不能包含int a[n],C语言不允许动态数组. 子函数中是可以存在int a[2*n]的,但是不能是static局部变量,因为子函数中的数据在执行时,n已经确认,可以在 栈中分配出int n[2*n]的地址空间. 在定义时,初始化: 1) int a[10] = {0,1,2,...,9};  //使用{}l=括号

C语言数据结构——第一章 数据结构的概念

一.数据结构的基本概念 1.1-数据结构是什么? 数据结构是计算机存储和组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术有关. 想要对大型复杂程序的构造进行系统而科学的研究,必须首先对这些程序中所包含的数据结构进行深入的研究. 数据:通常用于描述客观事物,是对客观事物的符号表示.例如:在我们平时使用的各种文字.数字和特定符号都可以称之为数据.而在计算机中,数据是指所有能

C语言数据结构——第三章 栈和队列

三.栈和队列 栈和队列是两种重要的线性结构.从数据结构的角度来看,栈和队列也是线性表,它的特殊性在于栈和队列的基本操作是线性表操作的子集,它们的操作相对于线性表来说是受到限制的,因此,可以称其为限定性的数据结构. 从数据类型的角度看,它们是和线性表大不相同的两种重要的抽象数据类型,在面向对象的程序设计中,它们是多型数据类型. 3.1-栈 3.1.1-抽象数据类型栈的定义 栈:是限定仅在表尾进行插入或删除操作的线性表,又可以称为后进先出的线性表. 栈顶:栈的表尾端 栈底:栈的表头端 空栈:不含元素

R语言数据结构详解

R有多种存储数据的对象类型.基本的类型可分为: 1.向量 向量中的数据必须拥有相同类型或模式(数值型.字符型.逻辑型):向量类似c语言中的数组:实例:>a<-c(1,2,3,4,5,6)>b<-c(“one”,”two”,”three”)>c<-c(TURE,FALSE,TRUE)标量是指只含一个元素的向量:实例:>e<-3 访问向量中的元素(向量中的元素从1开始,这点与数组不同):>a<-c(1,2,5,7,-5,4) >a[3][1]

c语言数据结构

1)线性表 //顺序存储下线性表的操作实现 #include <stdio.h> #include <stdlib.h> typedef int ElemType; /*线性表的顺序存储(静态) struct List { ElemType list[MaxSize]; int size; }; */ //线性表的顺序存储(动态分配) struct List { ElemType *list; /*存线性表元素的动态存储空间的指针*/ int size; /*存线性表长度*/ in

R语言-数据结构

1.向量 向量是用来存储数值型.字符型或逻辑性数据的一维数组,用函数c()创建向量 a <- c(1,2,5,6,4) b <- c("one","two","three") c <- c("TRUE","FALSE") 2.矩阵 矩阵是一个二维数组,只是每个元素都拥有相同的模式,用函数matrix()创建矩阵 y <- matrix(1:20, nrow = 5, ncol = 4

C语言 数据结构 堆

1 // PRJ.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "math.h" 6 #include "stdlib.h" 7 8 typedef struct charType 9 { 10 char charArray[30]; 11 int top,buttom; 12 } CT; 13

R 语言数据结构 --2 矩阵和数据框①矩阵-matrix

矩阵-matrix-2018年6月9日 今天很可惜,没有过多地学习R语言(主要因为去听了党课,学习了党重要讲话,所以没有看书),所以今天就总结一个矩阵吧.不过多的学习了. 首先稍微复习一下昨天的因子,首先要记得的就是mode()看每个元素,class()看整体是什么,另外如果你把TRUE abc 1都传给一个向量,那向量会把它进行类型转换.安全性:字符串>数字>逻辑值.会尽量向安全性高的转换.这个是隐式类型转换.当然也可以用as家族进行类型转化,例如将数字转换成字符串:as.character