`
cecilia_xi
  • 浏览: 750 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

数组篇

 
阅读更多
    数据结构是什么呢?记得在上数据结构课的时候老师给我们定义(数据结构(Data Structure)是带结构的数据元素的集合。研究数据元素之间抽象化的相互关系以及这种关系在计算机中的存储表示)。数组是最基本数据结构之一,大学老师直接略过,从线性表开始讲课。
    数组是系统自动在内存分配出来的一片连续空间用于存放数据元素。并且,数组名存储的是首地址,数组对应的是空间而不对应数据元素。

一、数组的结构

    数组是由[]即方括号来表示。
    例如:int[] array
int[]表示整型的一维数组
array表示数组名

二、数组的定义

    以一维数组为例,格式如下:
        数据类型[] 数组名 = new 数据类型[长度];
数据类型[] 数组名 = {值,...};
数据类型[] 数组名 = new 数据类型[]{值,...};
数据类型[] 数组名;
数组名 = new 数据类型[长度];
数组名 = new 数据类型[]{值,...};

三、数组的应用与练习

    老师要求我们熟悉对数组的基本操作(查找,删除等),并且用数组来实现几种排序(希尔排序,快速排序,冒泡排序)。

四、练习


希尔排序
public void shellsort() {

		int i, j, g;

		for (g = 10 / 2; g > 0; g /= 2)
			for (i = 0; i < g; i++) {
				for (j = i + g; j < 10; j += g)
					if (test[j] < test[j - g]) {
						int temp = test[j];
						int k = j - g;
						while (k >= 0 && test[k] > temp) {
							test[k + g] = test[k];
							k -= g;
						}
						test[k + g] = temp;
					}
			}
	}


快速排序
	public void quicksort( int l, int r)
	{
	
	    if (l < r)
	    {	 int tmp;
	    	 tmp = test[(l + r) / 2];
        	 test[(l + r) / 2]=test[l];
        	 test[l]=tmp;

        	int i = l, j = r, x = test[l];
	        while (i < j)
	        {
	            while(i < j && test[j] >= x) // 从右向左找第一个小于x的数
					j--;  
	            if(i < j) 
	            	test[i++] =test[j];
				
	            while(i < j && test[i] < x) // 从左向右找第一个大于等于x的数
					i++;  
	            if(i < j) 
	            	test[j--] = test[i];
	        }
	        
	        test[i] = x;
	        
	        quicksort( l, i - 1); // 递归调用 
	        quicksort( i + 1, r);
	    }
	}


冒泡排序
public void bubblesort() {

		int i, j, tmp;
		for (i = 0; i < 10; i++)
			for (j = 1; j < 10 - i; j++)

				if (test[j - 1] > test[j]) {
					tmp = test[j];
					test[j] = test[j - 1];
					test[j - 1] = tmp;
				}

	}
分享到:
评论

相关推荐

    PHP学习笔记之数组篇

    ...数组可以通过直接给每个元素赋值的方式创建,也可以使用array函数定义。直接赋值方式允许开发者为数组的每个元素指定一个...通过本学习笔记之数组篇,您应该能够掌握PHP数组的基本知识,并开始在PHP程序中应用它们。

    Leecode初级算法_数组篇_实例

    本资料“LeetCode初级算法_数组篇_实例”是针对LeetCode平台上的初级算法,通过Java语言来实现的数组相关问题的解题代码集合。LeetCode是一个流行的在线编程挑战平台,它提供了一系列的算法题目,旨在帮助程序员提升...

    数组篇刷题模板总结一_二分查找.md

    算法系列笔记

    代码随想录数组篇思维导图

    代码随想录数组篇思维导图

    【JS代码优化二】ES6 数组篇

    【JS代码优化二】ES6 数组篇

    【LeeCode】初级算法案例+java代码(数组篇)(csdn)————程序.pdf

    【LeeCode】初级算法案例+java代码(数组篇)(csdn)——程序.pdf这篇文章涵盖了多个经典的初级算法问题,主要涉及数组操作。以下是对每个问题的详细解释和解题策略: 1. 删除排序数组的重复项 这个题目要求在保持...

    C语言-数组篇详细解读

    在C语言中,数组是一种非常基础且重要的数据结构,它允许我们存储一组相同类型的元素。在本详细解读中,我们将深入探讨C语言中的数组概念、声明、初始化、操作以及一些常见的应用。 首先,理解数组的基本定义是至关...

    算法刷题及总结_数组篇拓展.md

    有关算法刷题的笔记总结,囿于CSDNUI不太友好,可以自行下载md文件,用typora阅读。此系列为markdown形式上传,有需要的童鞋可以下载,后续会持续更新更加完善精致的算法笔记系列。

    【史上最强JavaSE笔记】之数组篇 by 潘师傅(chm版)

    不一样的笔记方式,让你可以更轻松愉快的学习到Java,这个是chm版本的,表情图片背景都发黑,如果看起来效果更好一点的话建议大家去我的CSDN博客去观看,喜欢可以保存页面收藏作为笔记,我的博客是:...

    (一)剑指offer—Python版—数组篇

    【数组篇知识点详解】 在计算机科学中,数组是一种基本的数据结构,用于存储一系列相同类型的数据。在Python中,数组通常以列表(list)的形式存在。本篇内容主要围绕《剑指Offer》书中关于数组的经典问题进行讲解...

    Java语言基础入门教程 Java开发编程基础课程 第5章 数组 共8页.pptx

    ### Java语言基础入门教程之数组篇 #### 一、数组概述 数组是Java语言中用于存储固定数量同类型数据的一种容器。它可以帮助我们更高效地管理一系列数据,尤其是在需要处理大量相同类型的数据时,数组提供了方便的...

    PHP常用开发函数解析之数组篇[未完结]

    数组处理函数在PHP开发中非常常见,学习...数组处理函数在实际应用中涉及到:数组的创建,字符串于数组的相互转换,数组转XML,数组转JSON.数组的检测.数组的合并于分割.数组的数目.获取数组中的所有值,获取数组中的所有键值

    三维数组操作_labview三维数组_labview_三维数组_

    本篇文章将深入探讨如何在LabVIEW中创建、操作和应用三维数组,以实现如标题和描述所述的功能。 首先,让我们理解什么是三维数组。三维数组是数据的一种组织形式,类似于现实生活中的立方体,它具有三个轴:X轴、Y...

    易语言数组中数值的查找

    本篇将深入探讨如何在易语言数组中进行数值查找,并通过源码解析来理解其实现机制。 易语言是一种以中文为编程语句的计算机编程软件,它具有简洁明了的语法,使得初学者能够快速上手。在易语言中,数组的定义和操作...

    动态数组的使用快速创建数组(VB6.0代码编写)

    本篇文章将深入探讨动态数组的使用、创建及VB6.0中的实现细节。 1. **动态数组的概念** 动态数组不同于静态数组,它的大小不是在编译时确定,而是在程序运行时根据需要动态地改变。这使得动态数组在处理不确定数量...

    易语言数组文本替换

    本篇将详细解析易语言数组文本替换的实现原理及应用。 一、易语言数组与文本基础 1. 数组:易语言中的数组是一种数据结构,可以存储一组具有相同类型的数据。数组有固定的大小,每个元素可以通过索引来访问。数组...

    易语言数组保存与恢复

    本篇将详细介绍易语言中数组的保存与恢复,以及与之相关的“数组到字节集”和“字节集到数组”的转换。 首先,我们要理解数组的保存。在易语言中,保存数组通常涉及到将数组内容写入文件。这可以通过循环遍历数组,...

Global site tag (gtag.js) - Google Analytics