1.氣泡排序
public int bubblesort(int arr) }}
return arr;
}
氣泡排序的改進
// 稍微優化一下,對於排序好的如123456789,會一直交換多次
public void bubblesortbetter(int arr) }}
}
2.選擇排序
public void choosesort(int arr)
}if (min != i) }}
3.插入排序
public void insertsort(int arr)
arr[j + 1] = temp;}}
}
4.希爾排序
// 排序是不穩定的,最壞時間複雜度o(n^1.5),平均時間複雜度o(nlogn);
// 步長一般都用2,但是最後只要保證gap=1就可以。
public void shellsort(int arr)
arr[j + gap] = temp;
}gap = gap / 2;}}
5.堆排序
// 堆的刪除,只能刪除a的節點,將交換後的節點和兒子比較,選最小的乙個作為頭節點。
// 從i節點開始調整,n為節點總數 從0開始計算 i節點的子節點為 2*i+1, 2*i+2
public void heapadjust(int arr, int i, int n)
if (temp < arr[index])
// 將最小兒子上移動
arr[i] = arr[index];
i = index;
index = 2 * i + 1;
}// 以為temp一直沒有變,而且用來作為比較的參考值,
// 因此不交換而用這種方式就可以。
arr[index] = temp;
}// 堆化陣列
public void makearraytominheap(int arr, int n)
public void heapsort(int arr)
}
6.快速排序
public void quicksort(int arr, int low, int high)
int left = low;
int right = high;
int mid = arr[low];
while (low < high)
arr[low] = arr[high];
while (low < high && arr[low] <= mid)
arr[high] = arr[low];
}arr[low] = mid;
quicksort(arr, left, low - 1);
quicksort(arr, low + 1, right);
}
7.歸併排序
public void mergesort(int arr)
public void mergearray(int arr, int low, int high, int temp)
}public void merge(int arr, int temp, int low, int mid, int high) else
}while (left2 < high)
while (left1 < mid)
system.arraycopy(arr, low, temp, 0, temp.length);
}
人生中一定要堅守的格言
少許諾,多兌現 人一定要做自己擅長且喜歡的事情 專注如一 證明自己,用結果說話 聽多數人的意見,和少數人商量,自己做決定 始終保持學習的心態 幫助別人,成就自己 少埋怨,多做事 每天給自己乙個希望,試著不為明天而煩惱,不為昨天而嘆息,只為今天的美好 生活 夏日的烈日不見了,習習涼風已來,是時候出去玩...
在Git中一定要關注的crlf自動轉換
github 第一坑 換行符自動轉換 如果你已經做出了錯誤的選擇,也不需要重新安裝,可以直接使用命令列來修改設定。很簡單,直接開啟這貨自帶的命令列工具 git bash,輸入以下命令,再敲回車即可 git config global core.autocrlf false 在各作業系統下,文字檔案所...
工作中一定要掌握的流程分析利器 SIPOC模型
在工作中,我們經常會碰到各種問題時,感覺到束手無策,不知道從哪下手,好象整個流程都有問題,處處都是風險,這個時候,使用sipoc模型就能比較容易的識別出有問題的流程 同時在六西格瑪中,sipoc還能幫助界定專案範圍。sipoc是用來了解和認識過程的一種圖形,它是一種簡化了的過程流程圖。利用sipoc...