冒泡排序 相邻元素比较,大的向右冒泡
public class Bubble {//相邻元素比较,大的向右冒泡
public static void main(String[] args) {
int[] nums={10,38,65,97,76,13};
for (int i = 0;
i < nums.length;
i++) {
for (int j=0;
j
选择排序 直接插入
选出固定位置与后面元素逐个比较,交换
for (int i = 0;
i < nums.length-1;
i++) {
for (int j = i+1;
j < nums.length;
j++) {
if (nums[i]>nums[j]){
int t=nums[i];
nums[i]=nums[j];
nums[j]=t;
}
}
}
优化后无需多次交换,pos直接指向最小值进行交换
for (int i = 0;
i < nums.length-1;
i++) {//优化后无需多次交换,pos直接指向最小值进行交换
int pos=i;
for (int j = i+1;
j nums[j]){
pos=j;
}
}
if(i!=pos){
int t=nums[i];
nums[i]=nums[pos];
nums[pos]=t;
}
}
插入排序 前边有序,后边无序,后边的跟前边的逐个比较,确定位置
for (int i = 1;
i < nums.length;
i++) {
for (int j = i-1;
j >=0;
j--) {
if(nums[j+1]
优化后只需一次交换,在选出元素位置挖出一个坑,前边的元素依次后移,最后把选出元素填入前边的坑
for (int i = 1;
i < nums.length;
i++) {
int temp=nums[i];
int pos=i;
for (int j = i-1;
j >=0 ;
j--) {
if (temp
希尔排序 直接插入的优化,通过设置间隔让元素分组进行插入排序
int[] nums={10,38,65,97,76,13,27,49,78,34,12,64,1};
int gap=nums.length;
while (gap!=1){
gap/=2;
for (int i = 0;
i =0 ;
k-=gap) {
if (temp
快速排序 【算法|java排序 冒泡排序,选择排序,插入排序,希尔排序,快速排序】后边指针先动,相遇时停下
public static void quickSort(int[] arr,int start,int end){
int i=start;
int j=end;
int p=arr[start];
//取第一个元素作为轴
while (i
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- 分析COMP122 The Caesar Cipher
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])