請看文章:
排序經典集合:插入排序,冒泡排序,快速排序,選擇排序,代碼簡單請看下面的基本介紹和代碼
插入排序:直接插入排序是一種最簡單的排序方法,它的基本操作是將一個記錄插入到一排好序的有序表中 時間復雜度為:O(n^2)
package paixu; /** * 冒泡排序 * @author 肖華 [email protected] * */ public class Charu { public static void main(String[] args) { int[] arr=new int[]{1,9,5,4,8,7,0,2,3,6}; for(int i=1;i=0){ // if(arr[j]>temp){ // arr[j+1]=arr[j];//往後移動 // j--; // }else{ // break;//找到這個元素了 // } // } // arr[j+1]=temp; int j=0; for(j=i-1;j>=0;j--){ if(arr[j]>temp){ arr[j+1]=arr[j];//往後移動 }else{ break;//找到這個元素了 } }//這個元素有可能是第一位 arr[j+1]=temp;//插入 } print(arr); } public static void print(int[] arr){ for(int i=0;i
冒泡排序:冒泡排序是將前一個與臨近的一個元素比較,如果前者大於後者則交換順序,在一輪排序之後,最後一個是最大的,第二次倒數第二個最大,一次直到所有的序列都為有順序的數列 時間復雜度為:o(n^2)
package paixu; /** * 冒泡排序 * @author 肖華 [email protected] * */ public class Maopao { public static void main(String[] args) { int[] arr=new int[]{1,9,5,4,8,7,0,2,3,6}; for(int j=0;jarr[i+1]){ int temp=arr[i+1]; arr[i+1]=arr[i]; arr[i]=temp; } } } print(arr); } public static void print(int[] arr){ for(int i=0;i
快速排序:快速排序運用到了分割的思想,通過一趟排序將帶排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字均比另一部分記錄的關鍵字小,然後遞歸對這兩部分繼續分割排序,已達到整個序列有序 時間復雜度為:knln(n) 結合冒泡排序,可以降低至O(log(n));
package paixu; /** * 冒泡排序 * @author 肖華 [email protected] * */ public class Quick { public static void main(String[] args) { int[] arr=new int[]{1,9,5,4,8,7,0,2,3,6}; qSort(arr, 0, 9); print(arr); } public static void qSort(int[] arr,int low,int high){ if(low=key){ high--; } //交換順序 int temp=arr[low];//此時arr[low]==key arr[low]=arr[high]; arr[high]=temp;//此時arr[high]==key while(low
選擇排序:這個排序比較簡單,也很容易理解,通過n-i+1(i=1,2,..n-1)個記錄中選取關鍵字最小的記錄作為關鍵字,並和第i(1<=i<=n)個記錄交換 時間復雜度為O(n^2)
package paixu; /** * 冒泡排序 * @author 肖華 [email protected] * */ public class Xuanze { public static void main(String[] args) { int[] arr=new int[]{1,9,5,4,8,7,0,2,3,6}; for(int i=0;i=arr[j]){//選擇最小的,保留在i位置 int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } print(arr); } public static void print(int[] arr){ for(int i=0;i
以上代碼復制即可運行,寫的很簡單,沒有什麼設計方法,有什麼不懂得可以留言一起探討轉載之後請注明出處:http://blog.csdn.net/xh199110/article/details/39672835 飛天博客
謝謝