交換排序 氣泡排序,快速排序

2021-06-10 19:09:58 字數 1094 閱讀 6313

/*

交換排序:氣泡排序,快速排序

執行環境:vs2010

*/#include #include #include #include #define ok 1

#define true 1

#define false 0

#define maxsize 50

typedef struct

redtype;

typedef struct

sqlist;

sqlist *createsqlist()

ptr++;

} sqlist->length = (i - 1);

return sqlist;

}//氣泡排序

int bubblesort(sqlist *sqlist)

} }return ok;

}//快速排序的一趟交換過程

int partition(sqlist *sqlist, int low, int high)

sqlist->red[low] = sqlist->red[high]; //將比樞軸記錄小的記錄移到低端

while((low < high) && (pivotkey >= sqlist->red[low].value))

sqlist->red[high] = sqlist->red[low]; //將比樞軸記錄大的記錄移到高階

} sqlist->red[low] = sqlist->red[0]; //樞軸記錄到位

return low; //返回樞軸的位置

}//對順序表的子表sqlist->red[low...high]做快速排序

int qsort(sqlist *sqlist, int low, int high)

return ok;

}//快速排序

int qicksort(sqlist *sqlist)

//列印表中資料

int printsqlist(sqlist sqlist)

printf("\b;\n");

return ok;

}int main()

交換排序(快速排序 氣泡排序)

1.快速排序 先從數列中取出乙個數作為基準數 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊 再對左右區間重複第二步,直到各區間只有乙個數。以乙個陣列作為示例,取區間第乙個數為基準數。0 1 2 3 4 5 6 7 8 9 72 6 57 88 60 42 83 73 4...

交換排序(氣泡排序,快速排序)

氣泡排序演算法 顧名思義,就是將最重的 最大元素 浮動到最下面,最輕的 最小元素 浮動到最上面 演算法過程 1.迴圈陣列長度length 1次,下標為 因為每次迴圈後就會出現乙個最大 公升序 或最小 降序 只需要比較n 1就行 1.1 在前 length i個元素中迴圈因為已經有i個已經有序 1.1...

交換排序 氣泡排序 快速排序

void bubblesort int arr,int size if issorted 1 void quicksort int arr,int left,int right if left right int div partition 01 arr,left,right 分成左右小區間 lef...