<>一、数据结构概述

<>【1】数据结构简介

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题

<>【2】数据结构分类

<>数据结构分为 逻辑结构 和 物理结构 两类

<>逻辑结构分类:

* 1、集合结构:集合结构中数据元素除了属于同一个集合外,他们之间没有任何其他的关系
* 2、线性结构:线性结构中的数据元素之间存在一对一的关系
* 3、树形结构:树形结构中的数据元素之间存在一对多的层次关系
* 4、图形结构:图形结构的数据元素是多对多的关系
<>物理结构分类:

逻辑结构在计算机中真正的表示方式(又称为映像)称为物理结构,也可以叫做存储结构。常见的物理结构有 顺序存储结构、链式存储结构

* 顺序存储结构中最常用的就是数组
* 链式存储结构中最常用的就是链表
<>二、简单排序

<>【1】冒泡排序
/** * 时间复杂度:O(n^2) * * 冒泡排序实现思路: * 1.从左到右将每个元素和下一个元素作比较 *
2.每轮确定一个未排序的元素中的最大或最小元素,放在数组的末尾或开头 */ public class 冒泡排序 { public static void
main(String[] args) { Integer[] arr = {3, 1, 5, 2, 4, 4, 9, 8, 7};
Bubble.sort(arr); System.out.println(Arrays.toString(arr)); } } class Bubble {
public static void sort(Integer[] t) { Integer temp; for (int i = 1; i <
t.length; i++) { for (int j = 0; j < t.length - i; j++) { if (t[j] > t[j + 1])
{ temp = t[j]; t[j] = t[j + 1]; t[j + 1] = temp; } } } } }
<>【2】选择排序
/** * 时间复杂度:O(n^2) * * 选择排序实现思路: * 1.将每个元素和下一个元素作比较 *
2.每轮确定一个未排序的元素中的最小值,将最小值放在开头或末尾 */ public class 选择排序 { public static void
main(String[] args) { Integer[] arr = {3, 1, 5, 2, 4, 4, 9, 8, 7};
Selection.sort(arr); System.out.println(Arrays.toString(arr)); } } class
Selection { public static void sort(Integer[] arr) { Integer minindex; Integer
temp; for (int i = 0; i < arr.length - 1; i++) { minindex = i; for (int j = i +
1; j < arr.length; j++) { if(arr[j] < arr[minindex]){ minindex = j; } } temp =
arr[i]; arr[i] = arr[minindex]; arr[minindex] = temp; } } }
<>【3】插入排序
/** * 时间复杂度:O(n^2) * * 插入排序实现思路: *
1.将数组分为排序和未排序的两段,初始默认数组第一个为排序中的元素,剩余元素为未排序中的元素 *
2.从索引为1开始,每轮使用倒序将未排序中的第一个元素与排序中的所有元素做比较 * 3.如果未排序的元素比排序中的元素小,则交换元素大小,反之则停止此次循环
*/ public class 插入排序 { public static void main(String[] args) { Integer[] arr =
{3, 1, 5, 2, 4, 4, 9, 8, 7}; Insertion.sort(arr);
System.out.println(Arrays.toString(arr)); } } class Insertion { public static
void sort(Integer[] arr) { Integer temp; for (int i = 1; i < arr.length; i++) {
for (int j = i; j > 0; j--) { if(arr[j] < arr[j - 1]){ temp = arr[j - 1]; arr[j
- 1] = arr[j]; arr[j] = temp; }else{ break; } } } } }

技术
©2019-2020 Toolsou All rights reserved,
Chrome OS,对程序员和Windows意味着什么?,互联网营销C#中字典的排序方法face_recognition的5个应用实例精准手机号抓取,运营商大数据蚂蚁集团香港IPO获得中国证监会批准连硅谷都撑不住了?远程办公的技术人员可能被减薪创建数据mysql库流程访客手机抓取方法程序员python表白代码你不知道的鸿蒙——HarmonyOS