生活中常用的排序算法:冒泡排序、插入排序、快速排序
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语言的一种常用排序算法。插入排序的基本思想是:把待排序的序列分为已排序和未排序两部分,每次将一个未排序的元素,按照其大小插入到已排序序列中的适当位置,直到所有元素都被插入。插入...
### 常用排序算法的比较 #### 引言 排序是计算机科学中一项非常重要的基本操作,它涉及将一组数据元素(或记录)按照特定的顺序(通常是递增或递减)重新排列。排序的目的通常是为了提高后续操作如搜索等的效率。...
本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...
常用排序算法的动态演示系统 在本系统中,我们主要实现了五种常用的排序算法:冒泡排序法、快速排序法、直接插入排序法、折半插入排序法和树形选择排序法。这些算法都是在计算机科学中最基本和最重要的排序算法,...
石家庄铁道大学 刘立嘉 算法与数据结构 实验六 常用排序算法的对比分析
一些常用排序算法的C语言实现,包括直接选择排序,希尔排序,直接插入排序,快速排序,归并排序,冒泡排序,堆排序
常用排序算法示例程序,内含TChart8控件。 示例程序涉及15种排序算法,使用C++代码实现,包含每种算法核心思想的介绍;可设置排序的数据个数、数据刷新显示时间等;使用TChart控件显示数据,显示界面可缩放。
在编程领域,排序算法是计算机科学中的核心概念,它们用于对数据进行有序排列。这里我们主要探讨五种常见的排序算法,这些算法的源码你可以在提供的压缩包文件中找到:MergeSort(归并排序)、RadixSort(基数排序)...
golang实现的常用排序算法 golang实现的常用排序算法 golang实现的常用排序算法
本资源提供了各种常用排序算法的C语言实现,源自严蔚敏的经典教材《数据结构》。下面将详细介绍这些排序算法及其在C语言中的实现原理。 1. 冒泡排序(Bubble Sort) 冒泡排序是最基础的排序方法,通过不断交换相邻...
本资源"常用排序算法介绍_示例程序"提供了一个深入理解这些算法的平台,结合了理论与实践,帮助开发者直观地看到各种排序算法的工作过程。 首先,让我们逐一探讨这些排序算法的核心思想: 1. **冒泡排序**:通过...
【C++常用排序算法】 在计算机科学中,排序算法是用于对一组数据进行排列的算法。C++作为一种强大的编程语言,提供了多种实现排序的方法。本文将详细介绍C++中常用的几种排序算法及其实现。 1. **冒泡排序** 冒泡...
本资料包聚焦于"Java常用排序算法"和"程序员必须掌握的8大排序算法",并深入探讨了"二分法查找"这一高效搜索技术。 首先,我们来看八大排序算法。这些算法包括: 1. **冒泡排序**:最简单的排序方法,通过不断交换...
以下是对C++中几种常用排序算法的详细说明: 1. **选择排序(Selection Sort)**: 选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始...
本文将详细解析八大常用排序算法的实现,帮助你更好地理解和测试这些算法。 1. 冒泡排序(Bubble Sort): 冒泡排序是一种简单的交换排序,通过不断比较相邻元素并交换,使得每次遍历都将最大(或最小)的元素“冒...
### 常用排序算法详解 #### 一、引言 排序算法作为计算机科学中的基础且重要的组成部分,在现实生活中有着广泛的应用。随着数据量的不断增大,如何高效地进行排序成为了一个亟需解决的问题。本篇文章将从简单排序...
C语言常用排序算法 在计算机科学中,排序算法是指将一组无序的数据按照某种顺序排列的方法。排序算法是编程语言中非常重要的一部分,特别是在C语言中。下面将介绍几种常用的排序算法,包括选择排序、插入排序等。 ...