不符合oj但是對的排序
#include
#include
/*當資料量大的時候,可用quick排序,因為此時找到的pivot比較接近真的中間值
1.找到樞紐元,可用三均值
2.以樞紐元為比較物件,將陣列分成兩部分
3.遞迴的實現上兩部
*/int count =0;
int index;
void
print
(int a,
int n)
void
insert
(int a,
int n)
}void
swap
(int a,
int i,
int j)
intmid3
(int a,
int left,
int right)
else
//針對小於三個元素的陣列
return0;
}void
quick_sort
(int a,
int left,
int right)
swap
(a, i, right);if
(a[index]
> a[i]
)swap
(a, index, i);}
else
if(count !=0)
i = left;
j = right -1;
while(1
)if(i < right)
swap
(a, i, right -1)
;}printf
("qsort(%d,%d):"
, left, right)
;print
(a,10);
quick_sort
(a, left, i -1)
;quick_sort
(a, i +
1, right);}
elseif(
!(left +
3<= right)
&&(left <=9)
)}intmain()
;scanf
("%d"
,&index)
;quick_sort
(a,0,10
-1);
// for (int i = 0; i < 10; i++)
// printf("%d ", a[i]);
return0;
}
對的
(因為=問題)有一組過的??
#include
#include
/*當資料量大的時候,可用quick排序,因為此時找到的pivot比較接近真的中間值
1.找到樞紐元,可用三均值
2.以樞紐元為比較物件,將陣列分成兩部分
3.遞迴的實現上兩部
*/int count =0;
int index;
void
print
(int a,
int n)
void
insert
(int a,
int n)
}void
swap
(int a,
int i,
int j)
intmid3
(int a,
int left,
int right)
else
//針對小於三個元素的陣列
return0;
}void
quick_sort
(int a,
int left,
int right)
swap
(a, i, right);if
(a[index]
> a[i]
)swap
(a, index, i);}
else
if(count !=0)
i = left;
j = right -1;
while(1
)if(i < right)
swap
(a, i, right -1)
;}printf
("qsort(%d,%d):"
, left, right)
;print
(a,10);
quick_sort
(a, left, i -1)
;quick_sort
(a, i +
1, right);}
elseif(
!(left +
3<= right)
&&(left <=9)
)}intmain()
;scanf
("%d"
,&index)
;quick_sort
(a,0,10
-1);
return0;
}
正確的
#include
#define cutoff 3
int index;
void
print
(int a,
int n)
printf
("\n");
}void
swap
(int a,
int i,
int j)
intmid3
(int a,
int left,
int right)
else
return0;
}void
insert
(int a,
int n)
a[j]
= temp;}}
void
quick_sort
(int a,
int left,
int right)
swap
(a, i, right -1)
;printf
("qsort(%d,%d):"
, left, right)
;for
(int k =
0; k <
10; k++
)printf
("\n");
quick_sort
(a, left, i -1)
;quick_sort
(a, i +
1, right);}
else
}int
main()
; pivot = a[index]
;swap
(a, index,9)
;int i =-1
;int j =9;
for(;;
)while
(a[--j]
> pivot)
if(i < j)
swap
(a, i, j)
;else
break;}
swap
(a, i,9)
;printf
("qsort(0,9):");
for(
int k =
0; k <
10; k++
)printf
("\n");
quick_sort
(a,0
, i -1)
;quick_sort
(a, i +1,
9);return0;
}
資料結構第六次作業
這個作業屬於哪個課程 這個作業要求在 homework 11430 這個作業的目標 掌握二叉樹的基本特性 掌握二叉樹的先序 中序 後序的遞迴遍歷演算法 理解二叉樹的先序 中序 後序的非遞迴遍歷演算法 通過求二叉樹的深度 葉子結點數和層序遍歷等演算法,理解二叉樹的基本特性 學號2018204183 一...
演算法與資料結構第六次作業 排序
演算法與資料結構實驗題 5.12 bubble sort 實驗任務 給定乙個 1 n 的排列p 即1到n中的每個數在p中都出現一次。現在要對排列p進行氣泡排序,如下 for int i 1 i n i for int j n,t j i j if p j 1 p j t p j p j p j 1 ...
C語言第六次部落格作業 資料型別
1 定義整型變數code放區位碼,areacode放區碼,digitcode放位碼,one放個位數,two放十位數,three放百位數,four放千位數 2 呼叫scanf 輸入code 3 分離並分別求個十百千位的數 4 區碼 千位數 10 百位數 160 5 位碼 十位數 10 個位數 160 ...