数据结构之排序

来源:互联网 发布:淘宝哪家华为手机壳好 编辑:程序博客网 时间:2024/06/05 20:36

数据结构之排序 

         序:数据结构里面,排序是一个很重要的内容,自己也看了好多次,但是每隔一段时间就忘了。今天通过自己的程序记录下来,尽量让这些算法更深刻一点。

一、冒泡排序

           冒泡排序是学习计算机这门专业第一个接触的算法,而且还是在C语言中学习的,所以印象很深刻,这也证实一位作家的话:第一次总是那么的刻骨铭心!冒泡排序其实已经很形象的说明了这个算法原理:在自然界的普遍现象中,气泡轻于液体,所以就会有气泡在水中的时候一直往上冒直到水面。所以给人有这样的感觉------轻的往上走。我们在数据结构中,把数值大小类比作这个轻重的度,先把最小的排到第一,然后次之,一直下去直到排完所有的数,完成了我们的最后目的------冒泡排序排序。下面引用一张图(百度百科借用)来形象说明一下:


java代码实现:

package com.tiange;import java.util.Arrays;import java.util.Random;public class App{    public static void main(String[] args){Random random = new Random();int[] arr = new int[20];for (int i = 0, len = arr.length; i < len; i++){arr[i] = random.nextInt(100);}System.out.println("before:"+Arrays.toString(arr));sort(arr);System.out.println("after:"+Arrays.toString(arr));}    // 冒泡排序    public static void sort(int[] arr)    {    for (int i = 0, len = arr.length; i < len - 1; i++)    {    for (int j = i + 1; j < len; j++)    {    // 把最小的放到前面的位置    if (arr[i] > arr[j])    {    int tmp = arr[i];    arr[i] = arr[j];    arr[j] = tmp;    }    }    }    }}