Java实现八大算法 详细

排序分为:内部排序和外部排序 内部排序是在排序的整个过程中,待排序的所有记录全部放置在内存中。外部排序是由于记录排序的个数太多,不能同时放置在内存中,整个排序过程需要在内外存之间多次交换数据才能进行。

而我们所说的八大排序都是内部排序。
关系如下:
在这里插入图片描述

而八大排序指的是:
1,直接插入排序
2,希尔排序
3,简单选择排序
4,堆排序
5,冒泡排序
6,快速排序
7,归并排序
8,基数排序

#冒泡排序
`

//	冒泡排序
public static void BubbleSort(int[] arr) {
	for (int i = 1; i < arr.length ; i++) {//排序需要的趟数。
		
		for (int j = 0; j < arr.length - i ; j++) {//
			
			if(arr[j + 1] < arr[j]) {
				
				int tem = arr[j + 1];
				
				arr[j + 1] = arr[j];
				
				arr[j] = tem;
				
			}
			
		}
		
	}
	
}

插入排序 的实现写了三个,实现的方式有点不一样但总体来说思想都是一样的。就我个人而言我更喜欢的是第一种

/*
 * 插入排序 从左向右扫描
 * 
 * 通过交换进行插入排序,借鉴冒泡排序
 */

//用以确定一个标签元素 让其前面的元素依次从左到右与之比较
//如果出现比它更大的数就把标签元素插在他的前面 
//从而达到排序的效果
public static void InsertSortFirst(int[] arr) {
	
	for(int i = 1 ;i < arr.length ;i++){ // 
		
		for (int j = 0 ; j< i ; j++ ){//确定一个元素arr[i] ,即把该元素作为标签元素,让排在
			
			if(arr[j] > arr[i]){//
				
				int tem = arr[i];
				
				arr[i] =  arr[j];
				
				arr[j] = tem;
				
				continue ;
				
			}//if
			
			//System.out.println(" i = "+ i + "  "+ Arrays.toString(arr));
			
		}//J_for
		
		System.out.println(" i = "+ i + "  "+ Arrays.toString(arr));
		
	}//i_for

}

/*
 * 插入排序算法
 * 
 * 通过交换进行插入排序,借鉴冒泡排序
 * 
 *i 用于外层循环 排好序后向后加一
 *arr[j] 用作标签元素 在内层循环中扫描 比它更大的数 
 *如果出现 arr[j-1]>arr[j] 就进行交换 j--
 *继续进行比较 出现  arr[j-1]<arr[j] 就退出本次循环
 *进行下一个循环
 *
 *该方法借鉴的是冒泡排序
 */
public static void InsertSortSecond(int[] arr) {
	
	for (int i = 0 ; i < arr.length - 1 ; i++) {
		
		for (int j = i + 1 ; j > 0; j--) {
			
			if(arr[j - 1] > arr[j]) {//
				
				int temp = arr[j];
				
                arr[j] = arr[j - 1];
                
                arr[j - 1] = temp;
                
			}//if
			
		}//j_for


	}//i_for

}//insertSort()



/*
 * 插入排序通过 较大元素向右移动,达到交换两元素的效果
 * 内层循环从后向前扫描
 * 
 */
public static void InsertSortThree(int[] arr) {
	
	for(int i = 1 ; i < arr.length ; i++) {
		
		int j;
		
		for ( j = i; j > 0 && arr[i] < arr[j - 1]; j--) {
			
			arr[j] = arr[j - 1];
			
		}
		
		arr[j] = arr[i];
		
	}
	
}

`

其他有待更新。很快

发布了32 篇原创文章 · 获赞 24 · 访问量 5906

猜你喜欢

转载自blog.csdn.net/qq_43663493/article/details/99204887
今日推荐