插入排序:
就像摸牌,摸一张插进去,找一个哨兵。从第二个開始,和前一个比較。小的话前移一位。
#include <iostream> #include<stdlib.h> using namespace std; #define N 4 //不能加分号结束 class sort { public: void insertSort(int a[],int n); sort() { cout<<"Start"<<endl; } sort(const sort&s); private: }; void sort::insertSort(int a[],int n) { int i=1,j=0,key;//设两个变量值的目的是内外变化。假设仅仅有一个内外的变化会产生影响 while(i<n) //外循环 { key=a[i];//把第几个拿出来。和前边的对照; j=i-1; //前边的那个值 while(key<a[j]&&j>=0) //内循环 { a[j+1]=a[j]; //把当前值改成前一个值 j--; //位置前移一位 } a[j+1]=key; //比較成功之后。把哨兵插到当前位置,注意用的是j i++; //转到下次循环 } cout<<"-----------\n "; for(int i=0;i<n;i++) { cout<<a[i]; } } sort::sort(const sort&s) { cout<<"news\n"; } int main() { sort s; //sort b=s; int a[N]; cout<<"lease input arr."; for(int i=0;i<N;i++) { cin>>a[i]; } cout<<"shuchu wei"; for(int i=0;i<N;i++) { cout<<a[i]<<endl; } s.insertSort(a,N); return 0; };
</pre><p><span style="font-family:SimHei; font-size:24px">冒泡排序:</span></p><p><span style="font-family:SimHei"></span></p><pre name="code" class="html"><span style="font-size:14px;">#include <iostream> #include<stdlib.h> using namespace std; #define N 4 //不能加分号结束 class sort { public: void insertSort(int a[],int n); sort() { cout<<"Start"<<endl; } sort(const sort&s); void bubblesort(int a[],int n); private: int c; }; void sort::insertSort(int a[],int n) { int i=1,j=0,key;//设两个变量值的目的是内外变化,假设仅仅有一个内外的变化会产生影响 while(i<n) //外循环 { key=a[i];//把第几个拿出来。和前边的对照。 j=i-1; //前边的那个值 while(key<a[j]&&j>=0) //内循环 { a[j+1]=a[j]; //把当前值改成前一个值 j--; //位置前移一位 } a[j+1]=key; //比較成功之后,把哨兵插到当前位置,注意用的是j i++; //转到下次循环 } cout<<"-----insertsort------\n "; for(int i=0;i<n;i++) { cout<<a[i]; } cout<<endl; } void sort::bubblesort(int a[],int n) { int i=0,j=n; for(;i<n-1;i++)//外层循环 { for(;j>i;j--)//内层循环,从最后一个開始向上冒泡。冒泡次数逐渐减一 { if(a[j]<a[j-1])//倒数開始,两个数进行比較,下边是交换过程 { int temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; } } } cout<<"-----bubblesort------\n "; for(int i=0;i<n;i++) { cout<<a[i]; } cout<<endl; } sort::sort(const sort&s) { cout<<"news\n"; } int main() { sort s; //sort b=s; int a[N]; cout<<"lease input arr."; for(int i=0;i<N;i++) { cin>>a[i]; } cout<<"shuchu wei"; for(int i=0;i<N;i++) { cout<<a[i]; } cout<<endl; s.insertSort(a,N); s.bubblesort(a,N); return 0; };</span><span style="font-size:24px;"> </span>
其它算法待续....
时间: 2024-10-29 10:46:19