茖-荌 发表于 2013-2-3 11:29:44

数据结构与排序

<div class="iteye-blog-content-contain" style="font-size: 14px;">    数据结构与排序
一、数据结构
  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>arr){                                       //这是交换过程    temp=arr;arr=arr;arr=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<arr){    lowerindex=j;    }    }    //交换一下值,使arr比后面的数大    int temp=arr;    arr=arr;    arr=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<arr){    int temp=arr;    arr=arr;    arr=temp;    }    }      }         //排好序后把数组返回                return arr;         } 
5、希尔排序法是效率比较高的排序方法,但是我就是不太了解,望有大神指教!。
页: [1]
查看完整版本: 数据结构与排序