常见的几种排序算法

简介: 常见的几种排序算法

1.冒泡排序

int a[10] = {4,3,7,6,0,9,8,1,2,5};
  int n = 10;
  for(int i=0;i<n-1;i++){ //趟数
    for (int j=0;j<n-i-1;j++){ //对数据进行排序
      if(a[j]>a[j+1]){
        int t = a[j];
        a[j] = a[j+1];
        a[j+1] = t;
      }
    }
  }

2.选择排序

int a[10] = {4,3,7,6,0,9,8,1,2,5};
  int n = 10;
  int min = 0;
  for(int i=0;i<n-1;i++){
    min = i;
    for (int j=i+1;j<n;j++){
      if(a[j]<a[min]){
        min = j;
      }
    
    }
    if(min!=i){
        int t = a[min];
        a[min] = a[i];
        a[i] = t;
      }
  }
 
 
  for (int m = 0;m<10;m++){
    printf("%d",a[m]);
  }

3.插入排序

int a[10] = {4,3,7,6,0,9,8,1,2,5};
  int n = 10;
  int min = 0;
  
  for (int i=1;i<10;i++){
    int temp = a[i];  //从第一处开始 
    for(int j=i;j>0&&a[j-1]>temp;j--){ //向前插入
      a[j]=a[j-1]; //元素后移
    }
    a[j] = temp;
  }
 
 
  for (int m = 0;m<10;m++){
    printf("%d",a[m]);
  }

4.快速排序:

public void quickSort(int arr[],int start,int end){
        if(start > end)
            return;
        int temp = arr[start];
        int i=start;
        int j= end;
        while (i!=j){
            while (arr[j]>=temp && j>i)
                j--;
            while (arr[i]<=temp && j>i)
                i++;
            if(j>i){
                int t = arr[j];
                arr[j]=arr[i];
                arr[i]=t;
            }
        }
        arr[start] = arr[i];
        arr[i]=  temp;
        quickSort(arr,start,i-1);
        quickSort(arr,i+1,end);
    }


目录
相关文章
|
6月前
|
搜索推荐 C++
7大排序算法C++实现
7大排序算法C++实现
65 0
|
6月前
|
搜索推荐 算法 数据处理
C++中的排序算法
C++中的排序算法
46 0
|
6月前
|
搜索推荐 算法
常见排序算法实现(二)
常见排序算法实现(二)
51 0
|
搜索推荐 C++
89 C++ - 常用排序算法
89 C++ - 常用排序算法
38 0
|
搜索推荐 算法
14 排序算法
14 排序算法
30 0
|
搜索推荐 Java C++
简单介绍排序算法
简单介绍排序算法
37 0
|
算法 搜索推荐 Java
TimSort——最快的排序算法
TimSort 算法是 Tim Peters 于 2001 年为 Python 语言创建的。该算法建立在插入排序和归并排序的基础之上,兼具插入排序和归并排序的优点。TimSort 的平均时间复杂度为 O(nlog(n)) ,最好情况 O(n) ,最差情况 O(nlog(n)) 。空间复杂度 O(n) ,是一个稳定的排序算法。
1563 0
TimSort——最快的排序算法
|
算法 搜索推荐 Java
常见排序算法详解(2)
(1) 算法过程 比较相邻的元素。如果第一个比第二个大(升序),就交换它们两个; 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数;
94 0
|
搜索推荐
排序算法总结
经典排序算法总结
68 0
|
搜索推荐 Java
常见的10种排序算法
常见的10种排序算法
108 0