請看文章:
排序經典集合:插入排序,冒泡排序,快速排序,選擇排序,代碼簡單請看下面的基本介紹和代碼
插入排序:直接插入排序是一種最簡單的排序方法,它的基本操作是將一個記錄插入到一排好序的有序表中 時間復雜度為:O(n^2)
package paixu;
/**
* 冒泡排序
* @author 肖華 xh1991101@163.com
*
*/
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 肖華 xh1991101@163.com
*
*/
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 肖華 xh1991101@163.com
*
*/
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 肖華 xh1991101@163.com
*
*/
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
飛天博客
謝謝