冒泡排序原理算法
#include<stdio.h> void Bubble_Sort(int a[],int n){ //冒泡排序 for(int i=0;i<n-1;i++){ //外層只需遍歷到倒數第2個數 for(int j=i;j<n;j++){ if(a[i]>a[j]){ int temp=a[i]; a[i]=a[j]; a[j]=temp; } } } } int main(){ int a[10]={2,1,3,4,5,6,7,8,9,0}; Bubble_Sort(a,10); for(int i=0;i<10;i++){ printf("%d ",a[i]); } }
插入排序原理數組
#include<stdio.h> void Insert_Sort(int a[],int n){ //插入排序 for(int i=1;i<n;i++){ int x=a[i]; int j=i-1; for(;j>=0 && x<a[j];j--){ a[j+1]=a[j]; } a[j+1]=x; } } int main(){ int a[10]={2,1,3,4,5,6,7,8,9,0}; Insert_Sort(a,10); for(int i=0;i<10;i++){ printf("%d ",a[i]); } }
選擇排序原理markdown
#include<stdio.h> void Selection_Sort(int a[],int n){ //選擇排序 for(int i=0;i<n-1;i++){ int num=i; for(int j=i+1;j<n;j++){ if(a[num] > a[j]) num=j; if(num!=i) { int temp=a[i]; a[i]=a[num]; a[num]=temp; } } } } int main(){ int a[10]={2,1,3,4,5,6,7,8,9,0}; Selection_Sort(a,10); for(int i=0;i<10;i++){ printf("%d ",a[i]); } }
快速排序原理ide
#include<stdio.h> void Quick_Sort(int l,int r,int a[]) { //快速排序 int i=l,j=r; int mid=(i+r)/2; do{ while(a[i]< a[mid]) i++; while(a[j]> a[mid]) j--; if(i<=j) { int temp=a[i]; a[i]=a[j]; a[j]=temp; i++; j--; } }while(i<= j); if(l< j) Quick_Sort(l,j,a); if(i< r) Quick_Sort(i,r,a); } int main(){ int a[10]={2,1,3,4,5,6,7,8,9,0}; Quick_Sort(0,9,a); for(int i=0;i<10;i++){ printf("%d ",a[i]); } }
桶排序原理優化
#include<stdio.h> int main(){ int a[5]={2,3,3,5,8}; int b[10]; memset(b,0,sizeof(int)*10); for(int i=0;i<5;i++){ b[a[i]]++; } for(int i=0;i<10;i++){ for(int j=0;j<b[i];j++){ printf("%d ",i); } } }
歸併排序原理ui
#include<stdio.h> #include<string.h> void combine(int a[],int l,int mid,int r) { //合併 int b[100]; memset(b,0,sizeof(int)*100); int k=0; int i=l,j=mid; while(i<mid && j<=r){ if(a[i]<=a[j]) b[k++]=a[i++]; else b[k++]=a[j++]; } while(j<=r) b[k++]=a[j++]; while(i<mid) b[k++]=a[i++]; for(int i=l;i<=r;i++) a[i]=b[i-l]; } void Guibing_Sort(int a[],int left,int right){ //拆分 if(left==right) return ; int mid=(left + right)/2; Guibing_Sort(a,left,mid); Guibing_Sort(a,mid+1,right); combine(a,left,mid+1,right); } int main(){ int a[10]={2,1,3,4,5,6,7,8,9,0}; Guibing_Sort(a,0,9); for(int i=0;i<10;i++){ printf("%d ",a[i]); } }
歡迎指出不足的地方,謝謝瀏覽,互勉!atom