排序算法汇集
1、冒泡排序
冒泡排序是一種算法比較簡單的排序,它的主要思想是:第一遍循環時,第一個元素和第二個元素比較,較小的放在前面,較大的數放在后面;第二個元素和第三個元素比較,較小的放在前面,較大的放在后面;直至倒數第二個元素和倒數第一個元素比較,這樣最大的那個元素就會在最后的位置;同理,再進行第二次循環,倒數第二個元素的位置會存放第二大數。
C語言的算法實現如下:
void bubblesort( int a[], int n ) {int i, j;
int temp, flag;
for( i = 0; i < n - 1; i++ ) {
flag = 1;
for( j = 0; j < n - i - 1; j++ ) {
if( a[j] > a[j+1] ) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
flag = 0;
}
}
if( 1 == flag ) {
printf( "sorted end: %d\n", i ); //打印第幾遍循環時,數組已有序
break;
}
}
return;
}
2、插入排序
插入排序是一種穩定的排序方法。由n-1趟排序組成,對于第p趟排序,保證從0到p的位置上得元素是有序的。
C代碼實現如下:
void insertsort( int a[], int n ) {int i, j;
int temp;
for( i = 1; i < n; i++ ) {
temp = a[i];
j = i;
while( j > 0 && a[j] < a[j-1] ) {
a[j] = a[j-1];
j--;
}
a[j] = temp;
}
}
轉載于:https://www.cnblogs.com/qi09/archive/2011/10/17/2215055.html
總結
- 上一篇: 【郭林专刊】过来人的总结
- 下一篇: 语音复核