博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实现八大算法 详细
阅读量:3949 次
发布时间:2019-05-24

本文共 1723 字,大约阅读时间需要 5 分钟。

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

而我们所说的八大排序都是内部排序。

关系如下:
在这里插入图片描述

而八大排序指的是:

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]
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]; } }

`

其他有待更新。很快

转载地址:http://mkewi.baihongyu.com/

你可能感兴趣的文章
修改RedHat默认登录方式
查看>>
按字段值分组表中记录
查看>>
windows批处理实现telnet登陆和运行命令--还有问题
查看>>
windows批处理实现telnet登陆和运行命令--设置缺省输入法为英文
查看>>
freetds使用-远程访问SQL Server库
查看>>
linux获得系统编码
查看>>
Ubuntu安装glib
查看>>
MySQL存储过程,生成大量数据
查看>>
查询字段值出现多次的字段值
查看>>
SQL Server表存在则进行查重 SQL语句
查看>>
redhat 9 下sqlite 3的安装及编程
查看>>
两个同步表的字段复制.Oracle.
查看>>
windows MySQL 报“Got a packet bigger than 'max_allowed_packet' bytes”错误,解决过程.
查看>>
MFC ADO连MySQL,使用数据源.
查看>>
在Redhat9下静态编译glib库.
查看>>
在ubuntu12下静态编译freetype库.
查看>>
CImg库编译使用.
查看>>
SQL Server循环执行动态SQL语句.
查看>>
windows MySQL报"2006 - MySQL server has gone away"错误,解决过程.
查看>>
ubuntu10.4网卡名由eth0改为eth4,导致获得不了IP地址.解决方法.
查看>>