/*
交換排序:氣泡排序,快速排序
執行環境: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...