前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三种排序方式

三种排序方式

作者头像
微醺
发布2019-01-17 13:05:57
3020
发布2019-01-17 13:05:57
举报

冒泡,选择,插入排序

代码语言:javascript
复制
public class Buble {

	public static void main(String[] args) {
		//创建一维数组
				int[]arr={11,4,7,2,55,9};
				System.out.println("冒泡排序后数据为");
				bubble(arr);
				list(arr);
				System.out.println();
				int[]arr1={3,6,1,98,7,66,2};
				System.out.println("选择排序后数据为");
				select(arr1);
				list(arr1);
				System.out.println();
				int[]arr2={11,32,1,3,76,8,56};
				System.out.println("插入排序后数据为");
				insert(arr2);
				list(arr2);

	}

	private static void insert(int[] arr2) {
		//外层控制轮
				for(int i=0;i<arr2.length-1;i++){
					//内层控制次数
					for(int j=i+1;j>0;j--){
						if(arr2[j]<arr2[j-1]){
							change(j,j-1,arr2);
						}else{
							break;
						}
					}
				}
		
	}

	private static void select(int[] arr1) {
		// 外层控制轮数
		for (int i = 0; i < arr1.length-1; i++) {
			//内层控制次数
			int t = i;
			for (int j = i+1; j < arr1.length; j++) {
				if(arr1[t]>arr1[j]){
					t = j;
				}
			}
				if(t!=i){
					change(t,i,arr1);
				
			}
		}
		
	}

	private static void list(int[] arr) {
		//遍历数组,输出数组
		for (int i : arr) {
			System.out.print(i+" ");
		}
		
	}

	private static void bubble(int[] arr) {
		//外层控制轮数
		for (int i = 0; i < arr.length-1; i++) {
			//内层控制次数
			for (int j = 0; j < arr.length-1-i; j++) {
				if(arr[j]>arr[j+1]){
					//两个数位置互换
					change(j,j+1,arr);
				}
				
			}
		}
		
	}

	private static void change(int i, int j, int[] arr) {
		// 交换两个数的位置
		int temp = arr[i];
		arr[i] = arr[j];
		arr[j] = temp;	
	}

}

总结

冒泡排序的思路

冒泡就像鱼吐得泡泡一样,泡泡越来越大,连起来看就是小泡泡在下面,大泡泡在上面。联想到数字就是大的数字在上面,小的数在下面。给你一个串数字,根据冒泡排序的方法演示就是这样的 假如有这样的数字11,4,7,2,55,9。 第一次比较 : 4,7,2,11,9,55 就是两个数两两比较 第二次比较 : 4,2,7,9,11 由于最大的数已经出来就不用比较最后一个了 第三次比较 : 2,4,7,9 第四次比较 : 2,4,7 第五次比较 : 2,4 第六次比较 : 2 其实最后一次就没进入循环,因为一共6个数,前五个大的数都找出来了,自然而然最小的数也出来了。

选择排序

选择排序,就是先拿出一个数,假设是最小的数,一个一个的跟后面的数进行比较。找到最小的数,由于是在数组中操作的。所以我们只需记住这个数的下标,当比较完毕,看看这个下标跟之前假设最小值的下标是否相等,不相等,让他们两个数进行交换。

插入法排序

插入法排序,先让两个数进行排序,当第三个数进来时,只需要跟第二个数比较,当它大于最二个数是,直接插入这个数的后面。当它小于第二个数时,依次跟前两个数比较。后面的数也是这样跟前面的数进行比较。 总的来说,后面两种方法都是根据冒泡排序方法延伸而来,主要是考虑到效率问题,后面的方法相对于冒泡来说依次少比较了很多次。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年11月07日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 冒泡,选择,插入排序
  • 总结
    • 冒泡排序的思路
      • 选择排序
        • 插入法排序
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档