最近學習演算法,看到網上有很多快速排序的帖子,但是大多都是貼上複製,能正確執行的寥寥無幾,所以自己在執行成功後在這裡記錄一下,主要是怕自己忘記,同時也希望能跟有相同興趣的人一起學習,本人菜雞新手,如果有**有問題,你咬我呀。。哈哈 開個玩笑,發現錯誤希望指出,大家一起學習,進步,成為更靠譜的程式設計師。
快速排序:
概念和排序思維這裡就不細說了,因為這種理論的學說網上一大把。這裡直接上**了。
public static void main(string args) throws exception ;
//執行排序演算法
qsort(ints, 0, ints.length - 1);
long endtime = system.currenttimemillis();
arrays.stream(ints).foreach(d -> system.out.print(d));
system.out.println();
system.out.println((endtime - starttime) + " ms");
}/**
* 分割功能,將陣列以基準值為基礎進行分割
* @param arr
* @param low
* @param high
* @return
*/public static int partition(int arr, int low, int high)
}//遍歷到最後 i+1的位置就是基準值應該在的位置,所以進行交換。
int tmp = arr[high];
arr[high] = arr[i + 1];
arr[i + 1] = tmp;
return i + 1;//最後返回基準值的位置,以方便分割資料,進行遞迴呼叫。
}/**
* 排序
* @param arr
* @param low
* @param high
* @throws exception
*/public static void qsort(int arr, int low, int high) throws exception
if (low >= high)
int p = partition(arr, low, high);//這裡返回分割的位置索引
//對陣列進行遞迴
qsort(arr, low, p - 1);
qsort(arr, p + 1, high);}}
排序後的輸出 VUE WebStorm安裝 親測可用
首先安裝webstorm和node.js 在windowspc端安裝軟體,一般安裝node.js 開啟cmd,檢視安裝是否成功 全域性安裝腳手架工具vue cli.vue專案初始化命令如下,若沒有安裝webpack,則先安裝webpack 安裝過程 中有個選項 use eslint to line ...
公升級gcc 親測可用
bin bash 公升級gcc 親測可用 cd user src 獲取原始碼 由於官方映象速度較慢,這裡使用了中國科學院開源協會的映象 wget 解壓tar jxvf gcc 5.2.0.tar.bz2 cd gcc 5.2.0 contrib download prerequisites cd 建...
LINUX安裝Mysql 親測可用
1 檢視mysql版本 方法一 status 方法二 select version 2 mysql啟動 停止 重啟常用命令 a 啟動方式 1 使用 service 啟動 root localhost service mysqld start 5.0版本是mysqld root szxdb etc s...