算法之冒泡、快速排序
2017-10-16 20:58
239 查看
冒泡排序:
package BubbleSort;
import java.util.Arrays;
import SelectSort.HeapSort;
//冒泡排序
//给定的一组数据中,先从第一个记录开始依次对相邻的数据进行比较,若大,则交换
//然后与第一个数据比较的袁术再与其相邻的元素比较,换为,直到倒数第二个数与最后一个数比较后,结束第一轮
//紧接着进行第二轮,重复第一轮的操作
//直至最后一轮结束
public class bubbleSort {
public static void bubbleSort(int[] data){
for(int i = 0;i<data.length-1;i++){
for(int j = 0;j<data.length-1-i;j++){
if(data[j]>data[j+1]){
int tmp = data[j];
data[j] = data[j+1];
data[j+1] = tmp;
}
}
}
System.out.println("排序后数组:" + Arrays.toString(data));
}
public static void bubbleSort1(int[] data){
for(int i = 0;i<data.length-1;i++){
for(int j = data.length-1;j>i;j--){
if(data[j]<data[j-1]){
int tmp = data[j];
data[j] = data[j-1];
data[j-1] = tmp;
}
}
}
System.out.println("排序后数组:" + Arrays.toString(data));
}
public static void main(String[] args) {
//int[] array = {1,13,44,69,97,53,29,42,96,51,40,12,8,14,10,100};
int[] array = {49, 38, 65, 97, 76, 13, 27, 49, 78};
bubbleSort.bubbleSort1(array);
}
}
快速排序:
package BubbleSort;
import java.util.Arrays;
import SelectSort.HeapSort;
//冒泡排序
//给定的一组数据中,先从第一个记录开始依次对相邻的数据进行比较,若大,则交换
//然后与第一个数据比较的袁术再与其相邻的元素比较,换为,直到倒数第二个数与最后一个数比较后,结束第一轮
//紧接着进行第二轮,重复第一轮的操作
//直至最后一轮结束
public class bubbleSort {
public static void bubbleSort(int[] data){
for(int i = 0;i<data.length-1;i++){
for(int j = 0;j<data.length-1-i;j++){
if(data[j]>data[j+1]){
int tmp = data[j];
data[j] = data[j+1];
data[j+1] = tmp;
}
}
}
System.out.println("排序后数组:" + Arrays.toString(data));
}
public static void bubbleSort1(int[] data){
for(int i = 0;i<data.length-1;i++){
for(int j = data.length-1;j>i;j--){
if(data[j]<data[j-1]){
int tmp = data[j];
data[j] = data[j-1];
data[j-1] = tmp;
}
}
}
System.out.println("排序后数组:" + Arrays.toString(data));
}
public static void main(String[] args) {
//int[] array = {1,13,44,69,97,53,29,42,96,51,40,12,8,14,10,100};
int[] array = {49, 38, 65, 97, 76, 13, 27, 49, 78};
bubbleSort.bubbleSort1(array);
}
}
快速排序:
package QuickSort; import java.util.Arrays; //快速排序 //选择一个基准元素,将待排序序列分成两部分,一部分比基准元素小,一部分比基准元素大 //此时基准元素放置在合适的位置,然后将分成的两部分在进行递归排序. public class quickSort { public static void _quickSort(int[] data,int low,int high){ if(low<high){ int middle = getMiddle(data, low, high); _quickSort(data, low, middle - 1); //对低字表进行递归排序 _quickSort(data, middle + 1, high); //对高字表进行递归排序 } } //将数组一分为二 public static int getMiddle(int[] data,int low,int high){ //选定一个基准数(一般为第一个元素或者最后一个元素) int tmp = data[low]; while(low<high){ while(low<high&&tmp<=data[high]){ high--; } data[low] = data[high];//把比中轴小的记录放在左面 while(low<high&&tmp>=data[low]){ low++; } data[high] = data[low];//把比中轴小的记录放在右面 } data[low] = tmp;//中轴记录到尾 return low; } public static void main(String[] args){ int data[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51}; quickSort._quickSort(data, 0, data.length-1); System.out.println("排序后数组:" + Arrays.toString(data)); } }
相关文章推荐
- Java 常用算法 插入,冒泡,快速排序大放送
- 算法--排序(冒泡,选择,插入,快速)
- 算法--排序(冒泡,选择,插入,快速)
- 【排序及算法】冒泡/选择/插入/快速排序、顺序查找/折半查找算法
- 算法分析之冒泡,快速,选择排序
- 算法积累_java_插入,选择,冒泡,快速排序
- Java算法之排序(快速,冒泡,归并,选择)
- 【算法与数据结构必备】PHP常用排序算法:冒泡,快速排序,插入排序(一维数组)
- 关于排序(冒泡、选择、插入、快速)的几种算法
- 白话经典算法系列之六 快速排序 快速搞定
- iOS算法笔记-快速排序-OC实现
- 【算法导论】快速排序
- 第16周项目1-验证算法(4)快速排序 以第1个元素作为基准
- 【算法总结系列-1】快速排序-c语言实现
- 算法系列-快速排序
- 白话经典算法系列之六 快速排序 快速搞定
- java简单实现冒泡 快速 选择排序
- 算法——高级排序——快速排序,归并排序,希尔排序
- java经典算法之快速排序
- 常规排序:冒泡,选择,快速排序