生活中常用的排序算法:冒泡排序、插入排序、快速排序
package com.tao.bao;
/**
* @author Administrator
*
*/
public class SortAll {
/**
* @param args
* 插入排序
*/
public int[] insertionSort(int[] arr){
int j;
for(int p=1;p<arr.length;p++){
int tmp=arr[p];
for(j=p;j>0&&arr[j-1]>tmp;j--)
{
arr[j]=arr[j-1];
}
arr[j]=tmp;
}
return arr;
}
/**
* ,冒泡排序
* @param arr
* @return
*/
public int[] maoPaoSort(int[] arr){
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1])
{
int tmp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
return arr;
}
/*
* 快速排序
*/
public int partition(int[] arr,int left,int right){
int x = arr[right]; //选取最后一个元素为主元,算法导论中算法
int i = left-1;
for(int j=left;j<right;j++){
if(arr[j]<=x){
i=i+1;
swap(arr,i,j);
}
}
swap(arr,i+1, right);
return i+1;
}
public int[] quicksort(int[] arr,int left,int right){
if(left<right){
int q = partition(arr, left, right);//关键
quicksort(arr, left, q-1);
quicksort(arr, q+1, right);
return arr;
}
return null;
}
public static void swap(int arr[],int a,int b){
int temp = 0;
temp = arr[a];
arr[a] =arr[b];
arr[b] = temp;
}
public static void main(String[] args) {
SortAll all = new SortAll();
int arr[] = {2,8,7,1,3,5,6,4};
int newarr1[] = all.insertionSort(arr);
System.out.println("insertionSort方法");
for(int i=0;i<newarr1.length;i++){
System.out.print(newarr1[i]+" ");
}
System.out.println();
int newarr[] = all.maoPaoSort(arr);
System.out.println("maoPaoSort方法");
for(int i=0;i<newarr.length;i++){
System.out.print(newarr[i]+" ");
}
System.out.println();
int arrquick[] = all.quicksort(arr, 0, arr.length-1);
System.out.println("arrquick方法");
for(int i=0;i<arrquick.length;i++){
System.out.print(arrquick[i]+" ");
}
System.out.println();
}
}
分享到:
相关推荐
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...
常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结
常用排序算法源码,自己用C++实现,插入、交换、选择、归并、基数。
石家庄铁道大学 刘立嘉 算法与数据结构 实验六 常用排序算法的对比分析
一些常用排序算法的C语言实现,包括直接选择排序,希尔排序,直接插入排序,快速排序,归并排序,冒泡排序,堆排序
python常用排序算法全文共5页,当前为第1页。python常用排序算法全文共5页,当前为第1页。python常用排序算法 python常用排序算法全文共5页,当前为第1页。 python常用排序算法全文共5页,当前为第1页。 排序算法是...
常用排序算法示例程序,内含TChart8控件。 示例程序涉及15种排序算法,使用C++代码实现,包含每种算法核心思想的介绍;可设置排序的数据个数、数据刷新显示时间等;使用TChart控件显示数据,显示界面可缩放。
浅析基于C语言的常用排序算法比较.pdf
利用随机函数产生N个随机整数,采用多种方法对这些数进行排序,然后分析各自的所需的排序时间找出较快的排序算法。 要求: 1) 分别采用的排序算法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并...
golang实现的常用排序算法 golang实现的常用排序算法 golang实现的常用排序算法
python常用排序算法 Python常用排序算法 排序算法是计算机科学中的基本算法之一,它是将一组数据按照一定的顺序进行排列的过程。在Python中,常用的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。...
python常用排序算法 Python常用排序算法 排序算法是计算机科学中的基本算法之一,它是将一组数据按照一定的顺序进行排列的过程。在Python中,常用的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。...
Java常用排序算法 Java常用排序算法 Java常用排序算法 Java常用排序算法
常用排序算法的动态演示系统的开发,演示冒泡排序法、快速排序法、直接插入排序法、折半插入排序法、树形选择排序法
常用排序算法总结,包含:冒泡排序、鸡尾酒排序、选择排序、插入排序、二分插入排序、希尔排序、归并排序、堆排序、快速排序等排序算法总结。
常用排序算法总结及C源程序常用排序算法总结及C源程序常用排序算法总结及C源程序常用排序算法总结及C源程序常用排序算法总结及C源程序常用排序算法总结及C源程序常用排序算法总结及C源程序
各种常用排序算法的C语言实现,摘自严蔚敏《数据结构》。
C++常用排序算法 C++常用排序算法
Java常用排序算法&程序员必须掌握的8大排序算法+二分法查找 Java常用排序算法&程序员必须掌握的8大排序算法+二分法查找
《福建电脑报》上的一篇文章,作者为滨州学院的刘春霞、常璐璐,以前读过,上传以便继续研究,在此对作者表示感谢。... 本文列举出几种常用排序的基本思想、算法实现及算法分析.并给出这些排序算法的比较和选择。