数据结构与排序
一、数据结构
1.数据结构可以抽象的认为是用来装数据的容器,当然这个装数据的容器还应该具有添加数据 、删除数据、插入数据、访问数据等功能。
2、我个人认为数据结构是保存数据、删除数据、修改数据、插入数据、遍历数据等方法的集 合。
3、常见的数据结构有数组、队列、链表、映射等。数组我们都很熟悉,它一般被指定长度和 数据类型,它在内存是一块连续的空间,我们可以通过数组的下标来访问每一个元素。队列 可以认为是一个动态的数组,它可以根据需要来增加长度,类是于排队,来的人只要往后排 就可以了,这个名称的确很形象。
二、排序
1、排序是我们常用来对一组数据进行的操作。常用的排序方法有冒牌排序法、选择排序法 、插入排序 法、希尔排序法。
2、冒泡排序法,代码和注解如下:
//arr为要排序的一组数据 public static void maopao(int[] arr){ //temp是用来做交换的中间变量 int temp; //第一个循环每循环一次,便能找出这组数据里最大的数 for(int i=0;i<arr.length-1;i++){ //第二个循环是用来做比较 for(int j=i+1;j<arr.length;j++){ //如果前面的数比后面的数小,则交换它们的值 if(arr[i]>arr[j]){ //这是交换过程 temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } //排好序后把数组返回 return arr; }
3、选择排序法,代码和注解如下:
public static void xuanze(int[]arr){ //第一个循环每循环一次,便能找出这个数组中最大的数对应的下标 for(int i=0;i<arr.length;i++){ //用来保存对应每次比较后最小的数,开始时可能不是最小 int lowerindex=i; //找出最小的一个引索 for(int j=i+1;j<arr.length;j++){ //和后面的数比较,如果后面的数大,则用lowerindex保存值大的下标 if(arr[j]<arr[lowerindex]){ lowerindex=j; } } //交换一下值,使arr[i]比后面的数大 int temp=arr[i]; arr[i]=arr[lowerindex]; arr[lowerindex]=temp; } //排好序后把数组返回 return arr; }
4.插入排序法
public static void charu(int[]arr){ //排序过程 for(int i=0;i<arr.length;i++){ for(int j=i;j>0;j--){ if(arr[i]<arr[j-1]){ int temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; } } } //排好序后把数组返回 return arr; }
5、希尔排序法是效率比较高的排序方法,但是我就是不太了解,望有大神指教!。