插入排序法
#include<iostream>
using namespace std;
void isort(int* a, int size);
int main(){
int array[]={55,2,6,4,32,12,9,73,26,37};
int len=sizeof(array)/sizeof(int);
for(int i=0; i<len; i++)
cout<<array[i]<<",";
cout<<"\n\n";
isort(array, len);
}
void isort(int a[], int size){
for(int i=1; i<size; i++){
int ins=a[i],idx=i-1;
for( ; idx>=0 && ins<a[idx]; idx--)
a[idx+1]=a[idx];
a[idx+1]=ins;
for(int j=0; j<size; j++)
cout<<a[j]<<((j==i)?" | ":",");
cout<<endl;
}
}
冒泡排序法
#include<iostream>
using namespace std;
void bubble(int[], int);
int main(){
int array[]={55,2,6,4,32,12,9,73,26,37};
int len=sizeof(array)/sizeof(int);
for(int i=0; i<len; i++)
cout<<array[i]<<",";
cout<<"\n\n";
bubble(array, len);
}
void bubble(int a[], int size){
for(int pass=1; pass<size; pass++){
for(int i=0; i<size-pass; i++)
if(a[i]>a[i+1]){
int temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
for(int i=0; i<size; i++)
cout<<a[i]<<",";
cout<<endl;
}
}
快速排序法
#include<iostream>
using namespace std;
void qsort(int[],int,int);
int main(){
int array[]={55,2,6,4,11,12,9,73,26,37};
int len=sizeof(array)/sizeof(int);
for(int i=0; i<len; i++)
cout<<array[i]<<",";
cout<<"\n\n";
qsort(array,0,len-1);
for(int i=0; i<len; i++)
cout<<array[i]<<",";
cout<<endl;
}
void qsort(int a[], int left, int right){
int pivot=a[right],l=left,r=right,temp;
while(l<r){
temp=a[l], a[l]=a[r], a[r]=temp;
while(l<r && a[r]>pivot) --r;
while(l<r && a[l]<=pivot) ++l;
}
temp=a[left], a[left]=a[r], a[r]=temp;
if(left<r-1) qsort(a,left,r-1);
if(r+1<right) qsort(a,r+1,right);
}
#include <stdio.h>
void swap(int *a,int *b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
void print(int *k)
{
int i;
static int cont = 0;
cont++;
printf("\n第 %d 次: ",cont);
for(i=0;i<10;i++)
{
printf("%d ",k[i]);
}
printf("\n");
}
void quicksort(int *k, int start_num,int end_num)
{
int i,j;
if(start_num < end_num)
{
i = start_num;
j = end_num+1;
while(1)
{
do
{
i++;
}while( !(k[start_num]<=k[i] || i==end_num) );
do
{
j--;
}while(!(k[start_num]>=k[j] || j==start_num));
if(i<j)
{
swap(&k[i],&k[j]);
}
else
break;
}
swap(&k[start_num],&k[j]);
quicksort(k,start_num,j-1);
quicksort(k,j+1,end_num);
}
}
int main()
{
int k[10]={2,5,6,3,7,8,0,9,12,1} , i;
printf("The data array is\n") ;
for(i=0;i<10;i++)
printf("%d ",k[i]);
printf("\n");
quicksort(k,0,9);
printf("\nThe result of quick sorting for the array is\n");
for(i=0;i<10;i++)
printf("%d ",k[i]);
printf("\n");
return 0;
}