常見排序演算法Java小結

2021-07-28 01:53:17 字數 1102 閱讀 6288

原想將一些常見排序演算法做個小的android demo,以供偶爾檢視,後來發覺不太必要,故只記錄一些核心演算法,以便查詢。ps:此處均預設排序從小到大,序列不為空。
1、選擇排序

//1 選擇排序

public void select(int nums)

}temp = nums[size - 1 -i];

nums[size - 1 -i] = nums[k];

nums[k] = temp;

}}

2、氣泡排序

//2 氣泡排序

public

void

bubble(int nums)}}

}

3、直接插入排序

//3 插入排序

public

void

insert(int nums)

nums[j] = temp;

}}

4、希爾排序

//4 希爾排序

public

void

shell(int nums)else

}nums[j] = temp;}}

}

5、快速排序

//5 快速排序

public

intgetmiddle(int nums , int low , int high)

nums[low] = nums[high];

while (lowreturn low;

}public

void

quick(int nums , int low , int high)

}public

void

sort(int nums)

}

在此補充乙個二分查詢演算法,二分查詢法前提序列有序,折半查詢

public

intbinary(int nums,int x)

return -1;

}

常見排序演算法小結

常見排序演算法時間和複雜度如下圖 氣泡排序核心 對於陣列a n for int i 0 i 改進 即使當發現陣列已經有序是跳出迴圈,使用方法就是在設定乙個flag,發現第二層的for迴圈一次都沒有進行交換就是表明陣列已經是有序的。時間複雜度o n 2 插入排序有3種,直接插入排序,二分插入排序,希爾...

常見的排序演算法小結

一 根據時間複雜度對排序演算法進行分類,其中n為資料樣本個數 1 複雜度為平方階o n 2 冒泡 選擇 插入排序 2 複雜度為o nlogn 快速 堆 歸併排序 3 複雜度為o n 1 希爾排序,其中 是介於0到1之間的 4 線性階o n 桶 箱 基數排序 二 排序演算法穩定性分析 1 穩定性的演算...

java常見排序演算法

package algorithms public class arraydemo int max getmax arr arr sort2 arr int start 0 int end arr.length 1 sort3 arr,start,end print arr public stati...