博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初探排序学习笔记
阅读量:6002 次
发布时间:2019-06-20

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

简单选择排序

 

思路:选出最小的元素,放在第一个位置。之后在剩下的元素中,选出最小的元素。放在第二个位置.........以此类推,直到完毕排序。

package h;public class MyA {  static void selectOne(int[] a, int begin)  {    int p = begin; //如果修正法     for(int i=begin+1; i

 

 

 

插入排序

 

思路:把新元素加到已经有序的队列中

public class MyA{	// 第k项插入到前边的序列中	static void insertOne(int[] a, int k)	{		for(int i=0; i<=k; i++){			if(a[i]>=a[k]){ //找到了插入的位置				int tmp = a[k];				for(int j=k-1; j>=i; j--) a[j+1] = a[j];				a[i] = tmp;				break;  			}		}	}		static void show(int[] a)	{		for(int i=0; i

 

 

高速排序

 

思路:以一个元素作为标尺,将数据分成两块。一块是小于标尺元素大小的。还有一块是大于等于标尺元素大小的。之后再进行递归。

将刚才分成的两块依照之前的方法再次进行高速排序,直到改分区(块)内没有须要排序的元素。

package j;class MyA{	static void show(int[] a)	{		for(int i=0; i
p1; i--){ if(a[i] <= x){ a[p1++] = a[i]; p2 = i; dr = !dr; continue L1; } } p2 = p1; } else{ for(int i=p1; i
= x){ a[p2--] = a[i]; p1 = i; dr = !dr; continue L1; } } p1 = p2; } } a[p1] = x; quickSort(a,begin,p1-1); quickSort(a,p1+1,end); } public static void main(String[] args) { int[] a = {15,22,13,9,16,33,15,23,18,4,33,25,14}; show(a); quickSort(a, 0, a.length-1); show(a); }}

 

 

希尔排序

 

思路:因为原始数据的有序性对排序时间的长短非常一定的影响。按一定的步长对数据进行分组。使用插入排序法进行排序。之后不断的减少步长。直到步长为1。

public class MyA{	//希尔排序之中的一个趟排序, dk 为步长	static void shellOne(int[] data, int dk)	{		for(int k=0; k
= data[k+i*dk]){ int tmp = data[k+i*dk]; for(int p=i-1; p>=j;p--) data[k+(p+1)*dk] = data[k+p*dk]; data[k+j*dk] = tmp; break; } } } } } static void show(int[] data) { for(int i=0; i

 

 

冒泡排序

 

思路:相邻元素之间进行比較。将大数放在后面。一趟排序之后则把最大数放到了末尾。多次排序就可以。

这样把小数往前移动,就像把大石头沉入海底,小石头冒泡浮上去。

package g;public class MyA {	static void bubbleOne(int[] a, int n)	{		for(int i=0; i
a[i+1]) { int tmp = a[i]; a[i]=a[i+1]; a[i+1]= tmp;} } } static void show(int[] a) { for(int i=0; i

 

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

你可能感兴趣的文章
SIO_KEEPALIVE_VALS 用户异常掉线检测
查看>>
Inno Setup入门(二)——修改安装过程中的图片
查看>>
服务器性能瓶颈分析方法(转载)
查看>>
JAVA学习笔记——JAVA基础语法(六)
查看>>
modelform实例学习
查看>>
EF CRUD
查看>>
初识python:time 模版
查看>>
mysql慢查询日志分析工具mysqldumpslow
查看>>
4.09.1
查看>>
电话本管理程序(实现增删改查功能)
查看>>
LOCK_TIMEOUT
查看>>
Python脱产8期 Day29 2019/5/24
查看>>
学c#语言的感想
查看>>
Windows 驱动模型的发展历史
查看>>
Android视图的截图
查看>>
App列表之分组ListView
查看>>
Android&iOS崩溃堆栈上报
查看>>
关于iOS开发的各种证书
查看>>
【Openjudge】 算24
查看>>
lvreduce -L 1000M /dev/vg0/lv0 表示最后缩减至多大,不是减少了多大
查看>>