交换排序(java)
来源:互联网 发布:淘宝查关键词排名 编辑:程序博客网 时间:2024/06/05 14:59
package exchange_sort;
import java.util.Random;
/*各类交换排序
* ------数据存储范围1~s.length-1 ------
*主要包括
*冒泡排序
*快排
*/
public class Sort {
/*
* 冒泡排序 稳定
*/
private static void bubbleSort(int[] s) {
int i, j, temp;
for (i = 1; i < s.length; i++)
for (j = 1; j < s.length - i; j++) {
if (s[j] > s[j + 1]) {
temp = s[j + 1];
s[j + 1] = s[j];
s[j] = temp;
}
}
while (left != right) {
while ((left < right) && s[right] >= pivot)
right--;
s[left] = s[right];
while ((left < right) && s[left] <= pivot)
left++;
s[right] = s[left];
}
s[left] = pivot;
return left;
* 快速排序 不稳定
*/
int pov;// 中间位
if (left < right) {
pov = partition(s, left, right);// 一趟划分
quickSort(s, left, pov - 1);
quickSort(s, pov + 1, right);
}
int[] s = new int[length];
for (int i = 1; i < s.length; i++)
s[i] = new Random().nextInt(800000);
for (int i = 1; i < s.length; i++)//源数据
System.out.println(s[i]);
System.out.println("------------------------------");
System.out.println("------------------------------");
System.out.println("------------------------------");
// bubbleSort(s);//冒泡
// quickSort(s, 1, 99999);//快排
for (int i = 1; i < s.length; i++)
System.out.println(s[i]);
}
}
import java.util.Random;
/*各类交换排序
* ------数据存储范围1~s.length-1 ------
*主要包括
*冒泡排序
*快排
*/
public class Sort {
/*
* 冒泡排序 稳定
*/
private static void bubbleSort(int[] s) {
int i, j, temp;
for (i = 1; i < s.length; i++)
for (j = 1; j < s.length - i; j++) {
if (s[j] > s[j + 1]) {
temp = s[j + 1];
s[j + 1] = s[j];
s[j] = temp;
}
}
}
private static int partition(int[] s, int left, int right) {//一趟快排划分过程,将待划分数组分为左右两部分并以pivot为界
int pivot = s[left];while (left != right) {
while ((left < right) && s[right] >= pivot)
right--;
s[left] = s[right];
while ((left < right) && s[left] <= pivot)
left++;
s[right] = s[left];
}
s[left] = pivot;
return left;
}
private static void quickSort(int[] s, int left, int right) {
/** 快速排序 不稳定
*/
int pov;// 中间位
if (left < right) {
pov = partition(s, left, right);// 一趟划分
quickSort(s, left, pov - 1);
quickSort(s, pov + 1, right);
}
}
//数据量取的99999个数据,发现快排比冒泡快太多了
public static void main(String[] args) {
int length = 100000;int[] s = new int[length];
for (int i = 1; i < s.length; i++)
s[i] = new Random().nextInt(800000);
for (int i = 1; i < s.length; i++)//源数据
System.out.println(s[i]);
System.out.println("------------------------------");
System.out.println("------------------------------");
System.out.println("------------------------------");
// bubbleSort(s);//冒泡
// quickSort(s, 1, 99999);//快排
for (int i = 1; i < s.length; i++)
System.out.println(s[i]);
}
}
0 0
- java实现交换排序
- java数据结构--交换排序
- [Java]交换排序
- 交换排序(java)
- 交换排序(Java)
- java实现交换排序
- Java交换排序
- 【交换排序】冒泡排序--Java
- 【交换排序】快速排序--Java
- java算法-排序-交换排序
- java排序 内部排序 交换排序
- java排序算法之(交换法排序)
- Java程序排序之交换排序
- Java程序排序之交换排序
- 交换排序之快速排序Java实现
- 交换排序之冒泡排序Java实现
- 排序算法---交换排序( java)
- 交换排序------冒泡排序(实现Java)
- account lock不影响已经登陆的session
- Android应用闪屏的制作,手把手教
- python爬虫百度贴吧标题数据
- 最牛的程序员编程讨论
- Greatest Common Increasing Subsequence-最长公共上升子序列
- 交换排序(java)
- 最基本的无限极分类
- dds的cube加载到opengl里后的处理方式。
- 黑马程序员——11,多线程,同步函数,死锁,一些零散的小知识点
- tomcat配置get请求中文乱码解决
- 马的遍历问题
- sizeof和strlen的区别
- leetcode笔记:Merge Sorted Array
- 读书笔记MoreEffectiveC++(18)