简单排序_java实现_自定义

  • 简单排序
    简单排序分从小到大排和从大到小排列;先从小到大排吧
    原理是以位置为中心,位置上的数与后面的其他位置的数一一比较,直到确定这个位置该谁坐为止,不符合要求的换掉位置上的人。
    取第一个位置,与第二个位置比一下,若第一个位置上的数比第二个位置上的数大,则两两交换;然后第一个位置的数又去找第三个位置的数比较,若第一个位置的数比第三个位置的数大,交换。。。比完最后一个位置上的数后,终于确定了第一个位置上的数是最小的。然后拿第二个位置与后面的位置一一比较。。。
    //所以有两个循环嵌套,一个控制外面的位置,一个控制里面的每次比较的别人的位置.
package ch01;
//数组的简单排序
public class SimpleSort {
	//传入一个数组
	public static void sort(long[] arr) {
		long temp = 0;//这里的temp就是该位置的最小值
		//i用来固定已经确认的位置,当前面的位置都已经确定后,最后一个位置就不用比了
		for(int i=0;i<arr.length-1;i++){
			//j用来确定要与i比较的位置
			for(int j=i+1;j<arr.length;j++){
				//确定逻辑,从小到大的话,第一个位置要是小的数
				//就是说当第一个位置上的数比后面的位置的数大的话,它就不是最小,需要交换
				//要是从大到小排的话,只需要改下面的大于号为小于号就行了
				if(arr[i]>arr[j]){
					temp = arr[j];
					arr[j]=arr[i];
					arr[i]=temp;
				}
			}
		}
	}
}
  • 插入排序

  • 冒泡排序
    冒泡排序的算法是相邻两个数之间比较(递增为例),每次都是从第一个位置开始,让第一个位置的数和第二个位置的数进行比较,如果第一个数比第二个数大,两两交换,否则不交换;再进入到第二个位置,让第二个位置的数与第三个位置的数进行比较…经过第一轮操作后,可以确定最大的数已经往下沉了,所以第二轮操作仍从第一个位置开始,但最后那两个数的比较就可以不用进行了(已经确定了最后那个数最大)。
    如果队列本身有序的话,只需要进行一轮扫描就完成了排序。

public void bubbySort(long arr[]) {
//
for(int i=0;i<arr.length-1;i++){

}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值