交换排序

原创 2015年11月18日 08:27:58
package test;

public class BubbleSort {

public static void main(String[] args) {
int[] arr = { 91, 55, 18, 39, 47, 62, 48, 16, 4 };
sort(arr);
}

public static void sort(int[] arr) {
//冒泡排序两层循环
int temp;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length -1- i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int k = 0; k < arr.length; k++) {
System.out.print(arr[k]+" ");
}

}
}





package test;
/**快速排序
 * 需要两个函数:
① 递归函数  public static void quickSort(int[]n ,int left,int right)
② 分割函数(一趟快速排序函数) public static int partition(int[]n ,int left,int right)
 * @author Administrator
 *
 */
public class QuickSort {  
  
public static void main(String[] args) {
int [] arr = {49,38,65,97,76,13,27};  
quickSort(arr,0,arr.length-1);
for (int i = 0; i < arr.length; i++) {  
            System.out.print(arr[i]+" ");  
        } 
}
public static void quickSort(int[] arr, int left, int right){
int key; 
if(left<right){
key=partition(arr, left, right);
quickSort(arr, left, key-1);
quickSort(arr, key+1, right);
}
}
//一趟排序
public static int partition(int[] arr, int left, int right){
int key=arr[left];
while(left<right){
while(left<right&&arr[right]>=key) right--;
   arr[left]=arr[right];
   
while(left<right&&arr[left]<=key) left++;
            arr[right]=arr[left];
}
arr[left]=key;
return left;
}
}  


八大排序--交换排序 之 快速排序

快速排序
  • csdn_chb
  • csdn_chb
  • 2016年11月22日 15:39
  • 354

数据结构实验之排序二:交换排序

数据结构实验之排序二:交换排序 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 冒泡...
  • guoqingshuang
  • guoqingshuang
  • 2015年12月20日 18:55
  • 1697

java实现排序算法之交换排序(冒泡排序和快速排序)

交换排序是指通过交换元素位置来实现算法的排序:最典型的就是冒泡排序和快速排序,下面分别讲解这两种算法的算法思想,稳定性,时空复杂度和java的实现代码...
  • NFMSR
  • NFMSR
  • 2017年02月18日 22:56
  • 342

交换类排序详解及总结

交换类排序思想是通过一系列交换逆序元素进行排序的方法。本文首先介绍基于简单交换思想实现的冒泡排序法,在此基础上给出改进方法——快速排序法。 冒泡排序 【算法思想】反复扫描待排序记录序列,在...
  • Number_0_0
  • Number_0_0
  • 2017年03月21日 15:46
  • 1091

交换排序—快速排序(Quick Sort)

基本思想通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行分割,直到所有的数据都呈有序排列为止。其基本思路如下图所示...
  • u012434102
  • u012434102
  • 2015年05月11日 21:20
  • 289

直接交换排序

直接交换排序
  • YinJianxiang
  • YinJianxiang
  • 2017年03月26日 18:08
  • 529

java算法之三快速排序(交换排序)

快速排序的基本思想:          通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。      ...
  • a1961613299
  • a1961613299
  • 2016年01月12日 20:09
  • 765

排序算法四:交换排序之冒泡排序

排序算法四:交换排序之冒泡排序声明:引用请注明出处http://blog.csdn.net/lg1259156776/引言在我的博文《“主宰世界”的10种算法短评》中给出的首个算法就是高效的排序算法。...
  • LG1259156776
  • LG1259156776
  • 2015年09月25日 11:31
  • 2943

排序(一) 简单交换排序

排序(一) 简单交换排序   by斜风细雨QQ:253786989    2012-02-01 样例代码: // 简单交换排序 int data[9] = {8, 2, 1, 4, 9, 5...
  • NorthCan
  • NorthCan
  • 2012年02月02日 14:06
  • 1628

NEUQACM OJ:1149--【C语言训练】排序问题<2>

题目如下 利用数组存储,简单的排序,从大到小输出,但是输出时注意末尾无空格1.冒泡排序int main() { int tmp,a[11]; //从大到小排序 for(int...
  • NEUQacmer
  • NEUQacmer
  • 2017年10月17日 21:37
  • 269
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:交换排序
举报原因:
原因补充:

(最多只允许输入30个字)