常用的几种简单的内部排序方法
这几种排序方法分别为:冒泡排序,选择排序,插入排序,快速排序
1.冒泡排序:
思想:简单的说就是想办法把一堆数据中最大的数不停地往后边排。
代码:
class Bubble{
// /**
// * 测试方法
// */
// public void test(int i){
// i++;
// System.out.println(i);
// }
public void sort(int arr[]){
int temp = 0;//设置这个变量的目的是为了实现数值的交换
//冒泡排序
for(int i=0;iarr[j+1]){
//交换
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// //遍历数组输出最后结果
// for(int i=0;i
2.选择排序:
思想:在给定的一堆数据中找到最小的(或者最大的)数跟数据的第一个数交换(最后一个数交换),然后第二次再在排好的数据中(不要把排好的第一个数算在其中)找最小的(或者最大的)数跟数据的的第二个数(倒数第二个数)交换,以此类推,不断的进行下去,最后就OK了。
代码:
/**
* 选择排序类
*/
class Select{
public void sort(int arr[]){
int temp = 0;
for(int j=0;jarr[k]){
//修改最小
min = arr[k];
minIndex = k;
}
}//当退出for就找到了这次的最小值
temp = arr[j];
arr[j] = arr[minIndex];
arr[minIndex] = temp;
}
// //遍历数组 输出最后结果
// for(int i=0;i
3.插入排序:
思想:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素(那肯定是有序的),无序表中有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。
代码:
/**
* 插入排序类
*/
class InsertSort{
//插入排序方法
public void sort(int arr[]){
for(int i=0;i=0&&insertVal
4.快速排序:
思想:通过一趟排序将要排序的数据分隔成独立的两部分,其中一部分的所有的数据都要比另一部分的所有的数据都要小,然后再对于这两部分分别进行以上的操作,以此达到整个数据变成有序的数据。简单地说就是在一堆数据中找到这些数据中中间的那个数,然后把比这个中间数大的放在中间数的右边,比它小的数放在中间数的左边,然后再次递归一样的对于左边的数,和右边的数进行以上操作。
代码:
**
* 快速排序类
*/
class QuickSort{
//快速排序方法
public void sort(int left,int right,int [] array){//传进的是数组最左边的下标,数组最右边的下标,数组
int l = left;
int r = right;
int pivot = array[(left+right)/2];
int temp = 0;
while(lpivot) r--;
if(l>=r) break;
temp = array[l];
array[l] = array[r];
array[r] = temp;
if(array[l]==pivot) --r;
if(array[r]==pivot) ++l;
}
/*System.out.println("the current array is");
for(int i=0;i<5;i++){
System.out.print(" "+array[i]);
}*/
if(l==r){
l++;
r--;
}
if(leftl) sort(l,right,array);
}
}
常用的几种简单的内部排序方法相关推荐
- php三个数字比较大小排序,php中常用的4种实现数字大小排序的冒泡选择等算法函数代码...
分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中按照从小到大的顺序进行排序. 本站收录这篇文章php中常用的4种实现数字大小排序的冒泡选择等算法函数代码,详细解说文章中相关排序 冒泡 ...
- 选择排序(Selection sort)是一种简单直观的排序算法
选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大 ...
- 算法 - 内部排序方法总结
分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 各种排序方法的性能比较 排序方法 最好时间复杂度 平 ...
- 内部排序 (一):各种内部排序方法的比较
作为数据结构的课程笔记,以便查阅.如有出错的地方,还请多多指正! 目录 各种内部排序方法的比较 地址排序 (基于关键字比较的) 内部排序在最坏情况下的最快速度 各种内部排序方法的比较 nnn 较小/基 ...
- 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...
掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等). 数组高级以及Arrays(掌握) 排序方法 空间复杂度 时间复杂度 稳定性 插 入 排 序 ...
- 一种简单的路口网格生成方法(Unity)
一种简单的路口网格生成方法(Unity) 1. 前言 2. 思路 3. 实现 3.1 测试场景的搭建 3.2 路口中心的多边形 3.3 斑马线部分的扩展 4. 测试效果 5. 网格生成 1. 前言 最 ...
- GIT将本地项目上传到Github(两种简单、方便的方法)
GIT将本地项目上传到Github(两种简单.方便的方法) 一.第一种方法: 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安 ...
- git学习(10):Git的使用--如何将本地项目上传到Github(两种简单、方便的方法)
将本地项目上传到Github(两种简单.方便的方法) 一.第一种方法: 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装gi ...
- Win7系统怎么截图?几种简单的win7截图方法
截图作为最为常见的电脑操作,一般人现在主要采用qq自带的截图进行,但如果没有网络,那么Win7系统怎么截图?下面由小编我为大家介绍几种简单的截图方法. 一.利用键盘上Print Screen截图 1. ...
最新文章
- php mysql xa_分布式事务之——MySQL对XA事务的支持
- Hadoop实例之利用MapReduce实现Wordcount单词统计 (附源代码)
- asp.net core中负载均衡场景下http重定向https的问题
- 面试官:final、finally、finalize 有什么区别?
- android获取未知字符串,android – 未知的URL内容:// downloads / my_dow...
- 菜鸟学Java笔记1
- win10家庭版远程桌面_win10 家庭版使用RDPWrap开通远程桌面服务
- HIT Software Construction Review Notes(0-1 Introduction to the Course)
- teechart mysql_TeeChart的X轴为时间,多个Y轴的显示
- 色彩原理-色相、明度、纯度
- Java邮箱验证码注册
- 2020考研初试成绩2月中旬起陆续公布,6点需注意
- 关于IE浏览器的一些思路
- appcan 文件下载到根目录(pdf)
- 全文翻译:Deep Learning for Image Super-resolution: A Survey
- 苹果6运行内存是多少_安卓手机12GB运行内存为何打不过苹果的4GB?有哪些原因?...
- 前台访问后台路径错误的解决
- 【UML】-- 活动图练习题含答案(打印合同、请假、公司评审、签订合同、软件发布、会见客户)
- 小型软件团队该如何分工(转)
- HOOK api readprocessmemory and writeprocessmemory