java快速排序、冒泡排序、插入排序

更新时间:2023-05-17 02:56:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

java里面常用的三种排序的示例源代码

package com.staconfree;
//主要要明白原理
public class Sort {
//快速排序1
private static int times = 0;
private static void QuickSort(int e[], int first, int end) {
int i = first, j = end, temp = e[first];
while (i < j) {
while (i < j && e[j] >= temp)
j--;
e[i] = e[j];
while (i < j && e[i] <= temp)
i++;
e[j] = e[i];
}
e[i] = temp;
times++;
System.out.println("第"+times+"次排序后:"+temp+"i="+i);
for (int m = 0; m < end+1; m++)
System.out.println(e[m]);
if (first < i - 1){
System.out.println("前半部分");
QuickSort(e, first, i - 1);}
if (end > i + 1){
System.out.println("后半部分");
QuickSort(e, i + 1, end);}
}
//快速排序2
private static int Partition(int e[],int first,int last){
int i = first,j = last,tmp = e[first];
while(i < j){
while(i < j && e[j] >= tmp){
j--;
}
e[i] = e[j];
while(i < j && e[i] <= tmp){
i++;
}
e[j] = e[i];
}
e[i] = tmp;
return i;
}
private static void QuickSort2(int e[],int first,int last){
int position;
if(first < last){
position = Partition(e,first,last);
QuickSort2(e,first,position - 1);
QuickSort2(e,position + 1,last);
}
}
//冒泡排序
private static void upSort(int e[]){
int end = e.length - 1,tmp;
for(int i = 0;i <= end;i++){
for(int j = i +1 ;j <= end;j++){
if(e[i] > e[j]){
tmp = e[i];
e[i]=e[j];
e[j]=tmp;
}
}
}
}
//插入排序
public static void insertSort(Comparable[] data) {
// 数组长度
int len = data.length;
// 从下标为1开始依次插入
for (int i = 1; i < len; i++) {
// 当前待插入的数据
Comparable currentData = data[i];
int temp = i;
while (temp > 0 && data[temp - 1].compareTo(currentData) > 0) {
// 向右移动
data[temp] = data[temp - 1];
temp--;
}// end while
data[temp] = currentData;
}// end for
}// end sort
public static void insertSort(int[] data) {
// 数组长度
int len = data.length;
// 从下标为1开始依次插入
for (int i = 1; i < len; i++) {
// 当前待插入的数据
int currentData = data[i];
int temp = i;
while (temp > 0 && data[temp - 1] > currentData) {
// 向右移动
data[temp] = data[temp - 1];
temp--;
}// end while
data[temp] = currentData;
}// end for
}// end sort
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = { 49, 38, 65, 97, 76, 13, 27, 49,100,23,48,289 };
//Comparable arr[] = { 49, 38, 65, 97, 76, 13, 27, 49,100,23,48,289 };
int len = arr.length;
int i;
System.out.println("before sort\n");
for (i = 0; i < len; i++)
System.out.println(arr[i]);
//QuickSort(arr, 0, len - 1);

//QuickSort2(arr, 0, len - 1);
//upSort(arr);
insertSort(arr);
System.out.println("after sort\n");
for (i = 0; i < len; i++

java里面常用的三种排序的示例源代码

)
System.out.println(arr[i]);
}

}

本文来源:https://www.bwwdw.com/article/glz4.html

Top