Java-冒泡排序、快速排序、插入排序、快速排序
来源:互联网 发布:网络词地表是什么意思 编辑:程序博客网 时间:2024/05/16 12:35
/**
* 功能演示各种排序法
* 1:冒泡排序 Bubble
* 2:快速排序 Select
* 3:插入排序 InsertSort
* 4:快速排序 QuickSotrt
* 引用: 类中形参变量当做应用的时候形参不能是普通类型,形参必须是复合类型,比如说数组就可以
*/
//1:插入排序
class InsertSort
{
//插入排序法
public void sort(int arr[])
{
for(int i=1; i<arr.length; i++)
{
int insertVal=arr[i];
//insertVal准备和前一个数比较
int index=i-1;
while(index>=0&&insertVal<arr[index])
{
//将把arr[index]向后移动
arr[index+1]=arr[index];
//让index 向前移动
index--;
}
//将insertVal 插入到适当的位置
arr[index+1]=insertVal;
}
}
}
//2:选择排序法
class Select
{
//选择快排序
int temp=0;
public void sort(int arr[])
{
//认为第一个数字是最小的
int temp=0;
for(int j=0; j<arr.length-1; j++)
{
int min=arr[j];
//记录最小数的下标
int minIndex=j;
for(int k=j+1; k<arr.length; k++)
if(min>arr[k])
{
min=arr[k];
minIndex=k;
}
temp=arr[j];
arr[j]=arr[minIndex];
arr[minIndex]=temp;
}
}
}
//3:冒泡排序法
class Bubble
{
public void test(int a)
{
a++;
}
public void sort(int arr[])
{
int temp=0;
//i是决定走几趟, 冒泡排序
for(int i=0; i<arr.length-1; i++)
{
//内层循环,开始逐个比较,如果发现前一个数比后一个数大就交换
for(int j=0;j<arr.length-1-i; j++)
{
if(arr[j]>arr[j+1])
{
//换位
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}
//4:快速排序
class QuickSort
{
public void sort(int [] a, int low, int high )
{
int pos;
if (low<high)
{
pos = FindPos(a, low, high);
sort(a, low, pos-1);
sort(a, pos+1, high);
}
}
public int FindPos(int [] a, int low, int high)
{
int val = a[low];
while (low<high)
{
while (low<high && a[high]>=val)
--high;
a[low] = a[high];
while (low<high && a[low]<=val)
++low;
a[high] = a[low];
}
a[low] = val;
return low;
}
}
0 0
- Java-冒泡排序、快速排序、插入排序、快速排序
- Java 排序 快速排序 冒泡排序 选择排序 插入排序
- java实现冒泡排序,插入排序,选择排序,快速排序
- 快速排序和冒泡排序,插入排序
- 冒泡排序、插入排序及快速排序
- 冒泡排序、快速排序和插入排序
- Scala冒泡排序、快速排序、插入排序
- 冒泡排序快速排序插入排序
- 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序java实现
- java 实现插入排序冒泡排序快速排序
- java中的冒泡排序,插入排序,快速排序
- 冒泡排序 快速排序 插入排序 堆排序 选择排序
- 插入排序、选择排序、冒泡排序、快速排序、堆排序
- 数组排序:快速排序,选择排序,冒泡排序,插入排序
- java 快速排序,冒泡排序
- java 冒泡排序、快速排序
- Java实现排序(插入排序+冒泡排序+选择排序+ Shell排序+快速排序)
- Java排序算法(冒泡排序、选择排序、插入排序、反数组排序、快速排序)
- Codeforces Round #382 (Div. 2)C. Tennis Championship(递推,斐波那契)
- Ajax实现--jQuery
- Ajax实现--javascript
- Struts2文件下载
- mysql 分页查询语句数据库查询
- Java-冒泡排序、快速排序、插入排序、快速排序
- JVM 整体内存结构
- Java基础---二分查找
- 两个线程同时运行案例
- 内存区域分布
- html页面(倒计时)
- 基于机器学习的波动监控系统
- Java线程入门案例演示(一)
- 字符流-FileReader和 FileWriter的用法