交換排序之冒泡與快排C C

2021-07-28 06:58:55 字數 1963 閱讀 6334

一、氣泡排序

相信氣泡排序大家都知道,無非是每一趟排序時將相鄰兩個元素進行交換,根據從大到小或從小到大的順序,交換起來略有不同,如此進行n-1次排序即可得到整個陣列有序。

1、平均時間複雜度為o(n^2)

2、最好情況下時間複雜度為o(n),此時設定標誌位,元素有序時直接退出

3、最壞之間複雜度為o(n^2)

4、空間複雜度為o(1)

**實現:

/*

*進行陣列的氣泡排序

*/#include

#define maxsize 100

/* *進行氣泡排序

*/void bubblesort(int a , int

length) ;

/* *進行元素的交換

*/void swap(int

*a , int

*b) ;

/* *進行陣列的顯示

*/void displayarray(int a , int

length) ;

void main()

printf("before sort... \n") ;

displayarray(a , length) ;

bubblesort(a , length) ;

printf("after sort... \n") ;

displayarray(a , length) ;

}void bubblesort(int a , int

length)}}

}void swap(int

*a , int

*b)void displayarray(int a , int

length)

printf("\n") ;

}

二、快速排序

快速排序即從陣列中選擇乙個標誌位,將比其小的元素放置在其前面,比其大的元素放置在其後面,然後將兩邊的前面的陣列與後面的陣列部分做同樣的置換,直至元素有序即可。

1、平均時間複雜度為o(nlogn)

2、最好時間複雜度為o(nlogn)

3、最壞時間複雜度為o(n^2),此時元素基本有序

4、空間複雜度為o(logn)

**實現

/*

*進行陣列的快速排序

*/#include

#define maxsize 100

/* *快速排序演算法

*/void quicksort(int a , int low , int high) ;

/* *進行一趟排序

*返回值為中間值的下標

*/int quickpass(int a ,int low , int high) ;

/* *進行陣列的顯示

*/void displayarray(int a , int length) ;

void main()

printf("before sort... \n") ;

displayarray(a , length) ;

quicksort(a , 0 , length - 1) ;

printf("after sort... \n") ;

displayarray(a , length) ;

}void quicksort(int a , int low , int high)

}int quickpass(int a , int low , int high)

if(low < high)

while(low < high && a[low] < temp)

if(low < high)

}a[low] = temp ;

return low ;

}void displayarray(int a , int length)

printf("\n") ;

}

交換排序之 氣泡排序(c c )

氣泡排序是很有名的排序演算法,經常會被人們提到,是一種較為常見的排序方法。顧名思義,它是將數按照一定順序給篩選出來。假定為公升序,該演算法將多次訪問數列,第一次將最大數放置到末尾,第二次將次大數放置到倒數第二位,依次類推,直至排序結束。它每一次都能將乙個數放到排序後它應該在的最終位置,待排序數會越來...

交換排序之氣泡排序

大學學的演算法已經基本遺忘了,最近又重新撿起來好好鑽研一下,那麼就先從排序開始。先說交換排序中的氣泡排序,這個是比較基礎的乙個排序演算法。1 基本思想 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即 每當兩相鄰的數比較...

交換排序之氣泡排序

氣泡排序演算法的基本思想是 假設待排序表長為n,從前往後 或從後往前 兩兩比較相鄰元素的值,若為逆序 即a i 1 a i 則交換它們,直到序列比較完。我們成它為一趟冒泡,結果將最大 最小 的元素交換到待排序列的最後乙個位置。下一趟冒泡時,前一趟確定的最大元素不再參與比較,待排序列減少乙個元素,每趟...