java实现 冒泡排序 选择排序

思路都再注释里~直接上代码


public class BasicSort {

	public static void bubbleSort(int n[])
	{
		//沉底/飘起思想
		for(int i=1;i<n.length;i++) //外层循环表示完成多少次:数组长度减一次
			for(int j=0;j<i;j++) //内层循环表示每轮比较多少次
				if(n[j]>n[i])
				{
					n[i]=n[i]^n[j];
					n[j]=n[i]^n[j];
					n[i]=n[i]^n[j];				
				}
		//比较次数:1+2+3+4... 时间复杂度为平方阶
	}
	
	
	public static void selectionSort(int n[])
	{
		//每次选出当前范围内最大(小)的元素,放到最后
		int max_index=0;
		int temp=0;
		for(int i=n.length-1;i>=0;i--) //外层循环决定每次的比较范围,范围逐渐缩小
		{
			for(int j=0;j<=i;j++)//内层循环找出每个范围内最大(小)的元素
				if(n[max_index]<n[j])
				{	
					max_index=j;//保存元素下标
				}
		    temp=n[i];
		    n[i]=n[max_index];
		    n[max_index]=temp;
			max_index=0; //下标更新为新数组(交换过元素的数组)的第一个
		}	
	}
	
	public static void main(String[] args) {
		int n[]= {9,8,7,6,5,4,3,2,1};
		//bubbleSort(n);
		selectionSort(n);
		System.out.println(Arrays.toString(n));
	}
	
}

发布了24 篇原创文章 · 获赞 10 · 访问量 1289

猜你喜欢

转载自blog.csdn.net/qq_41625102/article/details/104430515