A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 熊乾坤 中级黑马   /  2015-6-4 15:05  /  328 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

排序方法

JAVA中的排序算法一般主要有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。

快速排序法主要是运用了Arrays中的一个方法Arrays.sort()实现。

冒泡法是运用遍历数组进行比较,通过不断的比较将最小值或者最大值一个一个的遍历出来。

选择排序法是将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。

插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。

快速排序法、原理:

选择数组中的一个元素作为标准,将所有比标准小的元素放到左边,所有比标准大的元素放到右边。 并对左边和右边的元素做一样的快速排序过程。

public int[] quickSort(int[] result) {

      quick(result, 0, result.length - 1);

      return result;

   }

选择数组中的一个元素作为标准,将所有比标准小的元素放到左边,所有比标准大的元素放到右边并对左边和右边的元素做一样的快速排序过程。
   int pIndex = startIndex;

      for (int i = startIndex + 1; i <= endIndex; i++) {

         if (array[i] < array[pIndex]) {

            int temp = array[i];

            for (int j = i; j > pIndex; j--) {

                array[j] = array[j - 1];

            }

            array[pIndex] = temp;

            pIndex++;

         }

      }

      if (pIndex - startIndex > 1) {

         quick(array, startIndex, pIndex - 1);

      }

      if (endIndex - pIndex > 1) {

         quick(array, pIndex + 1, endIndex);

      }

冒泡排序法

比较n轮,每一轮都把最大元素移动到数组后端。

   public static void bubbleSort(int[] arr){

      for(int x = 0 ; x < arr.length ; x++){

         for(int y = 0 ; y < arr.length -1 - x;y++){

            if(arr[y] > arr[y+1]){

                swap(arr,y,y+1);

            }

         }

      }

   }

选择排序法

每遍历未排序部分一次都选出一个最小值,并将最小值元素移动到数组前端
public static void selectSort(int[] arr){

      for(int x = 0 ;x < arr.length ; x++){

         for(int y=x+1 ; y<arr.length ; y++){

            if(arr[x] > arr[y]){

                swap(arr,x,y);

            }

         }

      }

   }

插入排序法

原理与插入排序类似,不同点在于寻找插入位置的时候,采取的是折半查找方法

9 个回复

倒序浏览
学习了。不错的总结:)
回复 使用道具 举报
你这个比基础视屏上讲的排序方法都要多,基础视屏上只列举了选择排序和冒泡排序,不过感觉排序的代码写出来都大同小异,还有就是在Java软件中有自带的排序功能  ,用起来更方便。import Java.util.*;Arrays.sort();
回复 使用道具 举报
刚刚复习这个
回复 使用道具 举报
又学习了一遍。。。
回复 使用道具 举报
不错啊!
回复 使用道具 举报
不错的总结
回复 使用道具 举报
不错,学习!
回复 使用道具 举报
看看...
回复 使用道具 举报
挺好、。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马