排序的Java实现
来源:互联网 发布:淘宝联盟结算第三方 编辑:程序博客网 时间:2024/05/29 17:17
从头开始寻找,只有找到比自己小的就交换位置:
public static void maoPaoSort(int[] array)
{for(int i = 0 ;i < array.length-1;i++)
{
for(int j =0;j<array.length-1-i;j++)
{
if(array[j] > array[j+1])
{
swap(array, i, j);
}
}
System.out.println(Arrays.toString(array));
}
}
找到一个值,分二之至,是的左边的树都比它小,右边都比它大,递归排序:
{
if(low>=hi){return;}
int index = partpoint(array, low, hi);
quickSort(array,low,index-1);
quickSort(array, index+1, hi);
}
//找到快速排序的标准值
public static int partpoint(int[] array, int low, int hi)
{
int key = array[low];
while(low<hi)
{
//前半部分扫描--开始
while(key<=array[hi] && low < hi)
{
hi--;
}
array[low] = array[hi];
System.out.println(Arrays.toString(array));
System.out.println("前半部分扫描--结束 ");
//前半部分扫描 --结束
//后半部分扫描--开始
while(key>=array[low] && low < hi)
{
low++;
}
array[hi] = array[low];
System.out.println(Arrays.toString(array));
System.out.println("后半部分扫描--结束");
//后半部分扫描--结束
}
array[hi] = key;
System.out.println("********");
System.out.println(Arrays.toString(array));
return hi;
}
将当前带排序的值插入已有的有序序列中:
{
int insertNode,j;
for(int i = 1; i <array.length;i++)
{
insertNode = array[i];
j = i-1;
while(j >=0 && insertNode<array[j])
{
array[j+1] = array[j];
j--;
}
array[j+1] = insertNode;
}
}
每次都找最小在交换:
{
for(int i =0;i < array.length;i++)
{
int min = i;
for(int j = i+1;j<array.length;j++)
{
if(array[min] > array[j])
{
//找到最小值的位置
min = j;
}
}
//不相等说明找到了最小的,则交换
if(i != min)
{
swap(array, i, min);
}
}
}
}
阅读全文
0 0
- 排序的Java实现
- 排序的Java实现
- [排序算法]--快速排序的Java实现
- [排序算法]--归并排序的Java实现
- [排序算法]--桶排序的Java实现
- 排序算法的java实现-冒泡排序
- 排序算法的java实现-归并排序
- 气泡排序的java实现
- 起泡排序的Java实现
- 快速排序的JAVA实现
- java实现的选择排序
- java实现的归并排序
- java实现的冒泡排序
- 快速排序的Java实现
- java的排序算法实现
- java实现对象的排序
- 快速排序的java实现
- 堆排序的java实现
- html写选项卡
- 如何使用业务引擎模块?
- 字符流中第一个不重复的数
- Redis 讲解系列之 Redis的持久化
- linux crontab 命令 定时处理脚本文件
- 排序的Java实现
- Java学习笔记之IO(十七):转换流
- C语言除法”四舍五入“与“进一法”的实现
- sqoop mysql 抽到hive
- 云栖大会之异构计算,12日,B-3-5不见不散。
- bzoj 4423: [AMPPZ2013]Bytehattan
- CodeForces
- 给定中序-先序,中序-后序序列构建二叉树的算法
- C语言和C++ C#的区别在什么地方?