码迷,mamicode.com
首页 > 编程语言 > 详细

交换排序(java)

时间:2015-07-28 06:46:04      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:冒泡   快速排序   交换排序   

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;
}


}


}

        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]);


}


}

版权声明:本文为博主原创文章,未经博主允许不得转载。

交换排序(java)

标签:冒泡   快速排序   交换排序   

原文地址:http://blog.csdn.net/u010660346/article/details/47094767

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!