1.插入排序
演算法導論p3
/*
* insertsort.cpp
* * created on: 2012-7-9
* author: sangerhoo
*/#include using namespace std;
void insertsort(int *array,int n)
*(array+i+1)=key; }}
void arrayprint(int *array,int n)
int partion(int *array, int p, int r)
} swap(array + i, array + r);
return i;
}void quicksort(int *array, int p, int r)
}void arrayprint(int *array,int n)
cout << endl;
}int main()
; int length = sizeof(array) / sizeof(int);
cout << "排序前" << endl;
arrayprint(array, length);
quicksort(array, 0, length - 1);
cout << "排序後" << endl;
arrayprint(array, length);
return 0;
}
3.氣泡排序
/*
* bubblesort.c
* * created on: 2012-3-16
* author: sangerhoo
*/#include#includevoid bubblesort(int *arry,int n)
} }}void main()
; int i;
printf("排序前\n");
for(i=0;i<8;i++)
printf("\n");
bubblesort(arry,8);
printf("排序後\n");
for(i=0;i<8;i++)
printf("\n");
}
4.選擇排序
/*
* selectsort.c
* * created on: 2012-3-17
* author: sangerhoo
*/#include#includevoid selectsort(int *array,int n)
*(array+j)=tmp; }}
void main()
; int i;
int n= sizeof(array)/sizeof(int);
printf("n=%d",n);
printf("派尋前\n");
for(i=0;i6.shell排序
/*
* shellsort.c
* * created on: 2012-3-17
* author: sangerhoo
*/#include#includevoid shellinsert(int *array, int step, int n) }}
void shellsort(int *array, int n) while (addtion > 1);
}void main() ;
int i;
int n = sizeof(array) / sizeof(int);
printf("n=%d", n);
printf("派尋前\n");
for (i = 0; i < n; i++)
printf("\n");
shellsort(array, n);
/*shellinsert(array,3, n);*/
printf("派尋後\n");
printf("n=%d\n", n);
for (i = 0; i < n; i++)
printf("\n");
}
7.堆排序
/* * heapsort.c
* * created on: 2012-3-17
* author: sangerhoo
*/#include#includeint count =1;
void restore(int *array,int i,int n)
else
}*(array+j/2)=r;
}void heapsort(int *array,int n)
}void main()
;//array[0]不起作用
int i;
int n= sizeof(array)/sizeof(int);
printf("n=%d",n);
printf("派尋前\n");
for(i=1;i#includevoid merger(int *array,int l,int m,int r)
else
if(j>=na)
if(k>=nb)
}while(j
排序演算法的實現
1 直接插入排序 把後面未排序部分的首個數插入到前面已排序部分的正確位置上去,直到全部排好順序。直接插入排序是穩定的,演算法時間複雜度o n 2 2 shell排序 將要排序的一組數按某個增量g分成若干組,每組中記錄的下標相差g。對每組中全部元素進行直接插入排序,然後縮小增量g,在每組中再進行排序。...
排序演算法 選擇排序演算法實現
1 時間複雜度 o n 2 2 選擇排序主要操作是交換和比較 交換次數在0 n 1 總比較次數 n n 1 n 2 n 3 1 n n 1 2 因為交換需要的cpu時間 比較需要的cpu時間 當n比較少時,選擇比冒泡快,減少了不必要的交換,每次交換僅僅是最大值或者最小值與序列起始位置進行狡猾。3 演...
排序演算法 歸併排序演算法的實現
1 時間複雜度 最優情況 o n 最壞情況 o nlogn 將待排序的序列分成若干子串行,並且每個子串行是有序的,再將每個子串行兩兩進行排序,合併,最終整體有序。2 演算法步驟 1 先將序列拆分成兩個子串行 2 將兩個子串行之間進行排序,合成乙個 3 重複 1 2 過程,進行遞迴,直至每個序列個數為...