java之排序

文章目录

  • 排序
      • 内部排序
          • 冒泡排序法:
      • 查找排序
          • 顺序查找
        • 外部排序法

排序

指的是将多个数据一次指定进行顺序排列的过程。

排序分为四个: 1.内部排序,2.外部排序,3.

内部排序

指的是将所有数据都加在到内部存储器进行排序。包括(交换式排序法,选择式排序法和插入式排序法)

冒泡排序法:

通过对待排序序列从后向前排序,下标从大到小 依次比较相邻的值,值大的从前移到后面。

:2469805713,将最大的数放在最后

第一轮排序 
	第一次比较: 2469805713
	第二次比较  2469805713		
	第三次比较: 2469578013
	第四轮比较  2469571380

第二轮排序 
	第一次比较: 2469571380
	第二次比较  2457691380		
	第三次比较: 2457136980
	
第三轮排序 
	第一次比较: 2457136980
	第二次比较  2413576980		

结论:假设有n个数用冒泡排序,执行n-1轮,每轮 n-1 递减一次
	
 		
public class text {
	
	public  static  void main(String[] args) {
	int a[] ={24,69,80,57,13};
	for(int j = 0; j<4; j-- ) {       //for(int j = 4; j>0; j-- ) {
			for(int i= 0; i< a.length -1;i++ ) {   //for(int i= 0; i< j;i++ ) {
			
				if(a[i] > a[i+1]) {
					int max = a[i+1];
					    a[i+1] = a[i];
						a[i] = max;
				}
		
			}
	}
		
		
	for(int i=0; i<5;i++) {
	System.out.println(a[i]);
	}
    
   }
}



 		
public class text {
	
	public  static  void main(String[] args) {
	int a[] ={24,69,80,57,13,60,78,56,33,98};
	for(int k = 0; k<a.length-1; k++) {
			for(int i= 0; i< a.length-1 -k;i++ ) {
			
				if(a[i] > a[i+1]) {
					int max = a[i+1];
					    a[i+1] = a[i];
						a[i] = max;
				}
		
			}
	}
		
		
	for(int i=0; i<a.length;i++) {
	System.out.println(a[i]);
	}
    
   }
}

查找排序

查找排序分为两个,顺序排序和二分查找

顺序查找

//查找某字符串在数组内的下标	,没有报错,退出
import  java.util.Scanner;
public class text {
	
	public  static  void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
	String name[] ={"69","80","57","13","26"};
	
	System.out.println("请输入要查找的工号");
     String  Name =   scanner.next();
	 	 
	 int index = -1;//判断值
			for(int i= 0; i< name.length;i++ ) {
				if( name[i].equals(Name) ){
					System.out.println("已查到工号是"+(i+1));
					index = i;
					break;
				}
				
				if(index == -1) {
				System.out.println("没有查到该工号");	
					break;					
					
				}				
			}
	}
	
}

外部排序法

数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法,直接合并排序法)

你可能感兴趣的:(排序算法,java,数据结构)