2025年经典排序算法

经典排序算法冒泡排序 void BubbleSort int a int n for int i 0 i n i for int j n i 1 j if a j a j 1 swap a j a j 1 n

大家好,我是讯享网,很高兴认识大家。


讯享网

  • 冒泡排序    
void BubbleSort(int a[], int n) { for (int i = 0; i <n; i++) { for (int j = 0; j < n-i-1 ; j++) { if (a[j] > a[j+1]) swap(a[j], a[j+1]); } } }

讯享网
  • 插入排序
讯享网void InsertSort(int a[],int n){ for(int i=1;i<n;i++){ for(int j=0;j<i;j++){ if(a[i]<a[j]) { swap(a[i],a[j]); } } } }
  • 选择排序  
    void InsertSort(int a[], int n) { for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) { if (a[i] < a[j]) { swap(a[i], a[j]); } } } }
  • 希尔排序  
    讯享网void ShellSort(int a[], int n) { int temp, gap = n / 2; while (gap > 0) { for (int i = gap; i < n; i++) { temp = a[i]; int preIndex = i - gap; while (preIndex >= 0 && a[preIndex] > temp) { a[preIndex + gap] = a[preIndex]; preIndex -= gap; } a[preIndex + gap] = temp; } gap /= 2; } }

  • 堆排序  
    void AdjustHeap(int a[], int i, int length) { int temp = a[i]; for (int k = 2 * i + 1; k < length; k = 2 * k + 1) { if (k + 1 < length&&a[k] < a[k + 1]) { k++; } if (a[k] > temp) { a[i] = a[k]; i = k; } else { break; } } a[i] = temp; } void HeapSort(int a[], int n) { for (int i = n / 2 - 1; i >= 0; i--) { AdjustHeap(a, i, n); } for (int j = n - 1; j >= 0; j--) { swap(a[0], a[j]); AdjustHeap(a, 0, j); } }
  • 快速排序  
    讯享网void QuickSort(int a[],int start,int end){ if(start>=end)return; int i=start,j=end; int base=a[i]; while(i<j){ while(a[j]>base&&i<j){ j--; } if(i<j){ swap(a[i],a[j]); i++; } while(a[i]<base&&i<j){ i++; } if(i<j){ swap(a[i],a[j]); j--; } } a[i]=base; QuickSort(a,start,i-1); QuickSort(a,i+1,end); }
  • 归并排序
小讯
上一篇 2025-03-31 07:32
下一篇 2025-02-17 14:37

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/46613.html