推薦一個網站給你們,知乎上看到的,親測好用html
http://www.comp.nus.edu.sg/~stevenha/visualization/index.htmlios
1.冒泡排序網站
#include<iostream> using namespace std; int a[10]={10,9,8,7,6,5,4,3,2,1}; int main() { int len=sizeof(a)/sizeof(int),num2=0,temp; for(int i=0;i<len;i++) cout<<a[i]<<' '; cout<<endl; for(int i=0;i<len;i++) for(int j=i+1;j<len;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; num2++; } } for(int i=0;i<len;i++) cout<<a[i]<<' '; cout<<endl; cout<<len*num2<<endl; system("pause"); return 0; }
2.選擇排序ui
#include<iostream> using namespace std; int a[10]={10,9,8,7,6,5,4,3,2,1}; int main() { int len=sizeof(a)/sizeof(int); for(int i=0;i<len;i++) cout<<a[i]<<' '; cout<<endl; for(int i=0;i<len;i++) { int min=a[i],index=i; for(int j=i+1;j<len;j++) if(min>a[j]) { min=a[j]; index=j; } int temp=a[index]; a[index]=a[i]; a[i]=temp; } for(int i=0;i<len;i++) cout<<a[i]<<' '; cout<<endl; system("pause"); return 0; }
3.插入排序spa
#include<iostream> using namespace std; int a[10]={10,9,8,7,6,5,4,3,2,1}; void insert(int i,int j,int *a)//j>i,a[j]爲要插入的元素 { int temp=a[j]; for(int k=j;k>i;k--) a[k]=a[k-1]; a[i]=temp; } int main() { int len=sizeof(a)/sizeof(int),sorted_index=1; for(int i=0;i<len;i++) cout<<a[i]<<' '; cout<<endl; for(int i=0;i<len-1;i++) { for(int j=0;j<sorted_index;j++) { if(a[j]<=a[i+1]) continue; else insert(j,i+1,a); } for(int k=0;k<len;k++) cout<<a[k]<<' '; cout<<endl; sorted_index++; } system("pause"); return 0; }
4.快速排序code
//快速排序 void quick_sort(int s[], int l, int r) { if (l < r) { //Swap(s[l], s[(l + r) / 2]); //將中間的這個數和第一個數交換 參見注1 int i = l, j = r, x = s[l]; while (i < j) { while(i < j && s[j] >= x) // 從右向左找第一個小於x的數 j--; if(i < j) s[i++] = s[j]; while(i < j && s[i] < x) // 從左向右找第一個大於等於x的數 i++; if(i < j) s[j--] = s[i]; } s[i] = x; quick_sort(s, l, i - 1); // 遞歸調用 quick_sort(s, i + 1, r); } }