Java学习 第三章 数组(三)排序算法
生活随笔
收集整理的這篇文章主要介紹了
Java学习 第三章 数组(三)排序算法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
**
Java學(xué)習(xí) 第三章 數(shù)組(三)排序算法
**
主要內(nèi)容:排序算法、排序算法橫向比較、Arrays工具類的使用、數(shù)組常見(jiàn)異常
1.數(shù)組中涉及到的常見(jiàn)算法:排序算法
1.1 排序算法分類:內(nèi)部排序和外部排序
1.2 十大內(nèi)部排序算法
冒泡排序、快速排序:會(huì)手寫
堆排序、歸并排序:知道排序思想
2.冒泡排序:
實(shí)現(xiàn)過(guò)程:
public class BubbleSortTest {public static void main(String[] args) {int[] arr = new int[] {43,32,76,-98,0,64,33,-21,32,99};//冒泡排序for(int i = 0;i<arr.length;i++) {for(int j = 0;j< arr.length-1-i;j++) {if(arr[j]>arr[j+1]) {int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}} for(int i = 0;i<arr.length;i++) {System.out.print(arr[i]+"\t");} } }3.快速排序:
實(shí)現(xiàn)過(guò)程:
public class QuickSort {private static void swap(int[] data, int i, int j) {int temp = data[i];data[i] = data[j];data[j] = temp;}private static void subSort(int[] data, int start, int end) {if (start < end) {int base = data[start];int low = start;int high = end + 1;while (true) {while (low < end && data[++low] - base <= 0);while (high > start && data[--high] - base >= 0);if (low < high) {swap(data, low, high);} else {break;}}swap(data, start, high);subSort(data, start, high - 1);//遞歸調(diào)用subSort(data, high + 1, end);}}public static void quickSort(int[] data){subSort(data,0,data.length-1);}public static void main(String[] args) {int[] data = { 9, -16, 30, 23, -30, -49, 25, 21, 30 };System.out.println("排序之前:\n" + java.util.Arrays.toString(data));quickSort(data);System.out.println("排序之后:\n" + java.util.Arrays.toString(data));} }4.各種排序算法性能比較:
重點(diǎn):冒泡排序:O(n^2)
快速排序:O(nlog2n)
5.Arrays工具類的使用
6.數(shù)組中的常見(jiàn)異常
1.數(shù)組角標(biāo)越界的異常:ArrayIndexOutOfBoundsExcetion
2.空指針異常:NullPointerException
總結(jié)
以上是生活随笔為你收集整理的Java学习 第三章 数组(三)排序算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 十二星座男花心排行榜(第一名出轨率极高,
- 下一篇: AMD带来霄龙7Fx2系列 运行频率更高