原创 排序算法_07_基數排序(附Java和python語言的編程實現)

基數排序 基本思想: 基數排序又名桶排序,是一種典型的“用空間換時間”的編程思想,利用數字的每一個數位上面的特性來開展的,首先需要準備10個桶,用來存放數位值爲0,1,…,9的數字,最初按個數位的取值,將待排序的數放入桶中,再將

原创 查找算法_03_插值查找(附java和python語言的編程實現)

插值查找 基本思想 插值查找算法的也是一種基於有序列表的查找算法,思想上與二分查找法相似,不同的是每次折中選取的時候,變成“自適應”式的了。 圖解示例 編碼提要 編碼的過程中,只需將mid的獲取方式,在二分查找的基礎上,按照公式

原创 使用springboot實現郵件服務

本文主要講解如何利用springboot實現常用的郵件服務,涉及普通的純文本內容的郵件和含常用附件的郵件,主要演示利用QQ郵箱爲例。 1.在idea中利用springboot初始化器創建一個springboot項目 2 獲取郵箱

原创 排序算法_08_堆排序(附Java和python語言的編程實現)

堆排序 基本思想: 堆排序主要借用的是完全二叉樹的結構特點來完成排序調整的,每次將數組的中的元素調整爲==大頂堆(父結點元素的數值大於它的所有子結點)==的結構,然後將堆頂元素與末尾的元素進行交換位置,完成一次大頂堆的調整過程,

原创 解決使用遠程連接工具連接redis時,出現連接超時的方法

Linux系統中開啓指定端口號的防火牆:以在centos中開啓6379端口,供Redis desktop Manager 連接使用爲例 在終端中進入配置文件的編輯模式 vim /etc/sysconfig/iptables 增加

原创 Python中計算兩個數據點之間的歐式距離,一個點到數據集中其他點的距離之和

計算數兩個數據點之間的歐式距離 import numpy as np def ed(m, n): return np.sqrt(np.sum((m - n) ** 2)) i = np.array([1, 1]) j

原创 使用sklearn中的k-means方法就行聚類,並統計每個簇內樣本點的數目

# 導入庫 import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import MiniBatchKMeans, KMeans x = np

原创 排序算法_04_希爾排序(附Java和python語言的編程實現)

希爾排序 基本思想 希爾排序也是一種插入式的排序方法,同樣基於一種“分而治之”的想法,直接插入排序是分有序和無序表來進行的,希爾排序是採用分組排序的方式來處理,減少了最外層循環的次數。每次分組後,數組減少,元素間隔也在減少,直至

原创 Pycharm中運行程序報錯‘’SyntaxError: invalid syntax"的解決

在python的入門學習中,常見遇見這種問題,在pycharm中選擇python2.7作爲解釋器時,對於輸入語句的運行效果常會出現“SyntaxError: invalid syntax”的錯誤,這種問題對一個python的初學者

原创 排序算法_03_插入排序(附Java和python語言的編程實現)

插入排序 基本思想: 感覺就是採用了一種分而治之的思想,將待排序的數組看成一個有序表一個無序表,每次從無序表中取出第一個元素,與有序表中的元素比較,插入到有序表中合適的位置。這樣無序表的元素都插入都有序表中了,完成排序過程。

原创 查找算法_04_斐波那契查找算法(附java和python語言的編程實現)

斐波那契查找 基本思想 斐波那契查找算法的核心在於利用了黃金分隔數的特性來輔助mid的選取,同樣的,這種查找算法也是基於有序表的查詢方法。 圖解示例 編碼提要 (1)首先你需要構建一個斐波那契函數(2)再開始確定向左查詢時,索引

原创 排序算法_05_快速排序(附Java和python語言的編程實現)

快速排序 基本思想: 快速是對冒泡排序的一種改進,排序的過程中採用了遞歸,加速了排序的進程。首先從數組中選取一個元素作爲基準數(通常選取左起第一個數字),然後通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的大於基準數,

原创 排序算法_02_選擇排序(附Java和python語言的編程實現)

選擇排序: 基本思想: 第一次從數組中選取最小值,與放在數組的首部元素arr[0]交換,第二次從數組中第二元素到最後中選取最小值,與數組中第二位置的元素arr[1]交換,第三次從數組中第三個元素到最後中選取最小值,與數組中第三位

原创 排序算法_06_歸併排序(附Java和python語言的編程實現)

歸併排序 基本思想: 歸併排序的過程也體現了一種“分而治之”的思想,再利用遞歸來加速了排序的過程,簡單來說就是先將待排序的數組一層層的若干個部分,最後每一個部分就一個元素,然後再開始合併的過程,來解決整個排序的過程,重點當然是在

原创 排序算法_01_冒泡排序(附Java和python語言的編程實現)

冒泡排序 基本思想: 冒泡排序是排序算法中的最爲經典的一種,記得在C語言編程入門的時候,就在譚浩強老師的那本經典教材上面學習到這個排序算法。從冒泡排序的名稱來理解,其原理是相鄰位置的兩個數若出現逆序的情況,則交換這兩個數的位置,