Files
Go-tool/util/search/LomutoPartition_test.go
T
Huangzj 74dd19c675 feat(Go-Tool):
2021/02/23:删除linq包使用示例,修改二进制工具与单测类,修改lomuto划分,修改前缀树与单测类,修改时间比较工具
2021-02-23 10:57:41 +08:00

175 lines
28 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* @Author : huangzj
* @Time : 2020/8/18 14:54
* @Description
*/
package search
import (
"fmt"
"testing"
)
func TestPartition(t *testing.T) {
list := []int{99, 1, 2, 3, 4, 100, 200, 90, 5}
for i := 1; i <= len(list); i++ {
s := LomutoPartition(list, 0, len(list)-1)
fmt.Println()
fmt.Println(fmt.Sprintf("当前第一个元素应该存在位置为:%d", s))
for _, r := range list {
fmt.Print(r, " ")
}
}
fmt.Println()
for i := 1; i <= len(list); i++ {
num, _, _ := LomutoQuiteSelect(list, i)
fmt.Println(fmt.Sprintf("第%d个位置的数是:%d", i, num))
}
for i := 0; i < len(list); i++ {
fmt.Println(list[i])
}
}
func doc() string {
return `
这边对从前到后查找(第1、2、3、4...大的元素)和从后到前进行查找(第5、4、3、2、1)进行对比,发现从后到前进行查找所做的划分和交换元素操作,在元素多的情况下,效率来的更好,下面是计算的结果.
【倒序和正序排,无序都对划分次数有影响,正序排的查找效率一致】
查找指定数量的第几大元素的效率比较
从第一大元素开始查找总共进行了20次划分操作,实际进行交换的次数为:36
从第一大元素开始查找总共进行了6次划分操作,实际进行交换的次数为:22
从第一大元素开始查找总共进行了45次划分操作,实际进行交换的次数为:45
从第一大元素开始查找总共进行了45次划分操作,实际进行交换的次数为:45
从第一大元素开始查找总共进行了76次划分操作,实际进行交换的次数为:118
从第一大元素开始查找总共进行了49次划分操作,实际进行交换的次数为:91
从第一大元素开始查找总共进行了323次划分操作,实际进行交换的次数为:538
从第一大元素开始查找总共进行了215次划分操作,实际进行交换的次数为:430
从第一大元素开始查找总共进行了2004次划分操作,实际进行交换的次数为:2133
从第一大元素开始查找总共进行了1318次划分操作,实际进行交换的次数为:1447
从第一大元素开始查找总共进行了256523次划分操作,实际进行交换的次数为:260330
从第一大元素开始查找总共进行了173214次划分操作,实际进行交换的次数为:177021
接下来查找所有的第几大元素的效率比较
从第一大元素开始查找总共进行了45次划分操作,实际进行交换的次数为:45
从第一大元素开始查找总共进行了45次划分操作,实际进行交换的次数为:45
从第一大元素开始查找总共进行了78次划分操作,实际进行交换的次数为:78
从第一大元素开始查找总共进行了78次划分操作,实际进行交换的次数为:78
从第一大元素开始查找总共进行了91次划分操作,实际进行交换的次数为:91
从第一大元素开始查找总共进行了91次划分操作,实际进行交换的次数为:91
从第一大元素开始查找总共进行了7129次划分操作,实际进行交换的次数为:7254
从第一大元素开始查找总共进行了4925次划分操作,实际进行交换的次数为:5050
从第一大元素开始查找总共进行了5229次划分操作,实际进行交换的次数为:5278
从第一大元素开始查找总共进行了4046次划分操作,实际进行交换的次数为:4095
从第一大元素开始查找总共进行了661499次划分操作,实际进行交换的次数为:663080
从第一大元素开始查找总共进行了498919次划分操作,实际进行交换的次数为:500500
`
}
func TestLomutoQuiteSelect(t *testing.T) {
fmt.Println("查找指定数量的第几大元素的效率比较")
list := []int{99, 1, 2, 3, 4, 100, 200, 90, 5}
list1 := []int{99, 1, 2, 3, 4, 100, 200, 90, 5}
compareCalculate(list, list1, 5) //比较运算的效率
fmt.Println()
list2 := []int{1, 2, 3, 4, 5, 100, 200, 900, 50000, 444444, 8888888, 999999999}
list21 := []int{1, 2, 3, 4, 5, 100, 200, 900, 50000, 444444, 8888888, 999999999}
compareCalculate(list2, list21, 9) //比较运算的效率
fmt.Println()
list3 := []int{954439, 12345, 4444, 3333, 444, 222, 200, 90, 9, 6, 3, 2, 1}
list31 := []int{954439, 12345, 4444, 3333, 444, 222, 200, 90, 9, 6, 3, 2, 1}
compareCalculate(list3, list31, 10) //比较运算的效率
fmt.Println()
list4 := []int{1372, 6643, 3149, 7378, 6580, 5016, 6030, 7226, 6659, 3502, 8363, 7786, 7416, 446, 414, 9320, 2176, 2226, 2371, 2159, 3648, 9900, 4294, 5036, 2623, 4808, 5086, 5199, 2757, 7443, 4569, 3762, 4738, 9354, 2029, 1121, 2453, 9886, 5692, 8417, 8653, 2990, 5626, 7075, 6146, 354, 3723, 1762, 830, 4497, 2940, 2951, 8795, 5197, 3905, 1790, 4998, 6102, 3587, 7014, 8304, 4607, 3733, 5440, 6798, 4981, 2492, 7497, 9571, 1995, 8285, 6017, 2326, 9343, 7609, 5364, 441, 9367, 5623, 3203, 3113, 2255, 8131, 8859, 3806, 5460, 667, 3929, 3321, 801, 1103, 1222, 1940, 2101, 1190, 7264, 2370, 5236, 5150, 5169}
list41 := []int{1372, 6643, 3149, 7378, 6580, 5016, 6030, 7226, 6659, 3502, 8363, 7786, 7416, 446, 414, 9320, 2176, 2226, 2371, 2159, 3648, 9900, 4294, 5036, 2623, 4808, 5086, 5199, 2757, 7443, 4569, 3762, 4738, 9354, 2029, 1121, 2453, 9886, 5692, 8417, 8653, 2990, 5626, 7075, 6146, 354, 3723, 1762, 830, 4497, 2940, 2951, 8795, 5197, 3905, 1790, 4998, 6102, 3587, 7014, 8304, 4607, 3733, 5440, 6798, 4981, 2492, 7497, 9571, 1995, 8285, 6017, 2326, 9343, 7609, 5364, 441, 9367, 5623, 3203, 3113, 2255, 8131, 8859, 3806, 5460, 667, 3929, 3321, 801, 1103, 1222, 1940, 2101, 1190, 7264, 2370, 5236, 5150, 5169}
compareCalculate(list4, list41, 20) //比较运算的效率
fmt.Println()
list5 := []int{279, 522, 383, 835, 399, 973, 910, 81, 236, 518, 671, 466, 387, 907, 453, 25, 740, 972, 147, 384, 979, 181, 885, 119, 425, 367, 56, 532, 983, 660, 2253, 4453, 3345, 1792, 6411, 5769, 4247, 5799, 2118, 3006, 3350, 4239, 2052, 3712, 4815, 4283, 4748, 5704, 2089, 3323, 1764, 3314, 5451, 5088, 3757, 5429, 6031, 2456, 2159, 3634, 3950, 3344, 3837, 3481, 2515, 6120, 4085, 5602, 3142, 4976, 1781, 2356, 2680, 2614, 6098, 5086, 2914, 4388, 6075, 3552, 1737, 6107, 5423, 2147, 4997, 3136, 2300, 2023, 5774, 2984}
list51 := []int{279, 522, 383, 835, 399, 973, 910, 81, 236, 518, 671, 466, 387, 907, 453, 25, 740, 972, 147, 384, 979, 181, 885, 119, 425, 367, 56, 532, 983, 660, 2253, 4453, 3345, 1792, 6411, 5769, 4247, 5799, 2118, 3006, 3350, 4239, 2052, 3712, 4815, 4283, 4748, 5704, 2089, 3323, 1764, 3314, 5451, 5088, 3757, 5429, 6031, 2456, 2159, 3634, 3950, 3344, 3837, 3481, 2515, 6120, 4085, 5602, 3142, 4976, 1781, 2356, 2680, 2614, 6098, 5086, 2914, 4388, 6075, 3552, 1737, 6107, 5423, 2147, 4997, 3136, 2300, 2023, 5774, 2984}
compareCalculate(list5, list51, 50) //比较运算的效率
fmt.Println()
list6 := []int{84132644, 5469898, 64964811, 52855612, 71835648, 66037842, 96619260, 4920751, 75675691, 87894175, 4099049, 66385290, 55610311, 19818490, 43168996, 19146022, 56822923, 21902576, 22890253, 97967501, 84353387, 64315107, 32650209, 42110303, 94023093, 68052802, 15619862, 94421293, 634227, 77639259, 33928970, 95492545, 92710338, 28996582, 56905484, 54892736, 23116923, 20549503, 14783750, 74517844, 41338245, 31622350, 40636055, 94865731, 72727755, 40383450, 96526036, 74873916, 42873385, 16248077, 1366555, 4895078, 78633919, 19759975, 88923373, 62908758, 10394245, 76254857, 19794831, 72474113, 61660644, 17396571, 90313620, 92599297, 36473555, 72834266, 10707390, 87435905, 35193462, 84554559, 43771061, 68946538, 66690372, 84783929, 5591780, 19546017, 85658762, 6569031, 97892481, 76925793, 78507067, 88801048, 27858380, 47662249, 41006865, 98079672, 50965012, 25315673, 42791057, 41796878, 13328370, 42326892, 85450822, 51728880, 66757466, 45015301, 13457825, 82660751, 18104318, 39933247, 81906268, 28305906, 30736747, 65055358, 67835916, 38117546, 21041659, 55741410, 17053631, 10568396, 9398015, 39064051, 49793102, 24623903, 24818749, 67751466, 18286044, 43412285, 69126326, 82794491, 57464456, 51503068, 38973524, 75861914, 20467309, 86916932, 80045380, 55052826, 37459426, 22803310, 52111447, 71252008, 73866288, 10411519, 60271279, 39338010, 47488981, 82593864, 24480425, 74811215, 27257094, 22072269, 30994308, 18528210, 99826856, 61231979, 31565866, 24966442, 61393936, 58954539, 34863588, 87055659, 15340577, 76862807, 21485387, 27090777, 19180599, 39776166, 76190567, 55851843, 53162811, 43949745, 25935876, 35466508, 54234707, 15408880, 60185895, 48142405, 18571320, 21467296, 63244327, 24509789, 34426834, 44179807, 51861433, 56436967, 12424716, 9741402, 60982451, 62429601, 69296138, 70829088, 72535053, 80963078, 41312477, 98155892, 16209335, 54424515, 7919684, 19484956, 4129373, 85222263, 47925458, 88500005, 40216159, 9535874, 61090958, 59965894, 79008184, 45877959, 92334116, 21544730, 99718270, 72197309, 43462356, 24972097, 48416571, 57909933, 26336012, 83327474, 3088868, 67412130, 37947541, 31229124, 7046699, 45590012, 16414642, 7395623, 26984459, 73576795, 6354268, 70698360, 44971763, 27468805, 93997620, 752937, 83317090, 24373257, 60049482, 33327066, 16696062, 22561776, 27653851, 60227752, 86009792, 2130744, 62405472, 27072294, 67666364, 89858424, 13930856, 74187721, 63916662, 12528862, 62358511, 47921546, 41100867, 22346894, 39672160, 47223490, 77679476, 98436281, 44752260, 9627613, 36962786, 90374825, 78160571, 93883360, 56599240, 68298483, 97824296, 33634055, 22370600, 24917599, 26476359, 45206555, 8655136, 39869476, 13225506, 4784679, 86815112, 61270420, 48807361, 3037439, 34771044, 62258490, 33225533, 23860708, 71731923, 95100996, 76190767, 98025225, 43041801, 20275329, 61996638, 62990622, 68558294, 77564579, 41759022, 58648433, 14777242, 1588346, 40198753, 58992660, 74827261, 96181858, 7949854, 46651629, 23863375, 90963908, 15431493, 97304699, 52442824, 63181432, 72108348, 42415524, 18694990, 55690341, 53029822, 98285309, 69893143, 32380047, 21211578, 66276323, 13767870, 2453580, 48309591, 32793420, 68856483, 6144865, 32493766, 14443307, 16558615, 56173364, 46851157, 76531929, 72510123, 69974007, 62739062, 74678951, 16086537, 99021589, 25885455, 56937378, 4489978, 60649569, 78615888, 2647557, 64643320, 46802274, 5060208, 52617399, 27228033, 17984602, 20410049, 10002884, 52047448, 49118954, 27172559, 77743658, 66508384, 49729558, 62387046, 63365051, 28587175, 72112685, 38120110, 33911020, 3572602, 32495422, 8643623, 76492500, 76597483, 7356010, 11285891, 18298965, 73230149, 16527596, 54463913, 13391623, 75671670, 53202182, 60871134, 99413657, 40638194, 88093741, 45892108, 89677287, 42571709, 8599376, 9650823, 3461853, 10210211, 82719297, 73314803, 83175887, 81356827, 66541224, 27386335, 53458610, 31938735, 77062829, 52219963, 4634629, 2195329, 45936189, 93510890, 63097827, 27608052, 87854353, 1742573, 76324965, 66505791, 52248896, 44098710, 23650860, 98924462, 3148221, 65419911, 88229491, 20391451, 38974763, 21350501, 31524785, 13361644, 64189671, 69383824, 59839749, 78479790, 56399470, 81085916, 40966319, 22287675, 75538701, 21560592, 29471715, 54937993, 61176636, 47933284, 84858932, 7418453, 90540350, 78863504, 26487050, 77011442, 95519924, 34086694, 65726862, 56730076, 9319798, 53837355, 53252839, 56388546, 95177490, 69839042, 20240175, 37086681, 7115103, 71551498, 98568891, 2797094, 10019, 85537833, 93458447, 63176054, 70707466, 57182344, 87554727, 45502054, 70426780, 181175, 21725128, 85741211, 61703292, 87972023, 95388471, 38766653, 78652121, 79363328, 97336147, 22982197, 38210608, 85294028, 60049214, 95046903, 73067912, 66689163, 470782, 39746703, 10433527, 26495376, 36072495, 29095885, 84750312, 70852951, 92427916, 86007297, 71529666, 12458207, 21355305, 71682655, 39569228, 62324359, 34842156, 10589119, 15876337, 18922082, 36989385, 64209688, 9367669, 91629134, 39869533, 44918443, 94719947, 83177336, 95689886, 14874242, 95808987, 34224310, 48081318, 87145050, 57525754, 11724879, 22815775, 402718, 94226692, 24864663, 39005657, 14230427, 57028517, 16906489, 51821569, 37421058, 52685309, 23708312, 2695711, 74225221, 36563206, 41865930, 32870492, 60867175, 58184109, 80027621, 29797585, 25832622, 34365688, 53984988, 28112988, 65527980, 1891847, 80840032, 65181710, 44930884, 71796859, 64034821, 2441213, 7656890, 66905367, 89424374, 86401199, 67833123, 5527158, 39249233, 38380954, 1579340, 33072040, 55270576, 36415874, 83618159, 49171476, 50073095, 38868537, 66197322, 75602022, 23642511, 31802337, 38032700, 21235374, 23274623, 54925864, 55821493, 67875293, 57711466, 6308749, 58797798, 4679205, 31827281, 21068405, 5164401, 49646525, 12436159, 30594186, 69931426, 72018679, 47136790, 28530557, 18469508, 53429438, 65441243, 69598888, 19127164, 33237966, 22176660, 86696667, 86609266, 29497640, 48155451, 81900720, 96078391, 46847249, 61858133, 61682810, 17184579, 38640384, 86445148, 30734982, 96195727, 59870892, 59735846, 7269449, 6223317, 79924624, 24935583, 76562453, 70432640, 17961711, 63455078, 87052186, 6582013, 91169571, 88185256, 55064048, 73411320, 89110024, 83103937, 70826561, 41951196, 70118473, 35419495, 92514522, 7378675, 46115174, 64795880, 37773469, 84201979, 60967345, 26279840, 80064528, 25987400, 62751516, 99092060, 6750975, 34851159, 8162228, 79934563, 21555282, 12130203, 20310282, 71524260, 44716818, 33934195, 22925605, 50427545, 60718677, 43020582, 55313071, 79102910, 12698349, 6501904, 6707954, 76828948, 42615514, 2490566, 44541224, 41909075, 69770918, 6235838, 49491072, 99723426, 75606587, 83740984, 41476545, 14251088, 67954626, 79409730, 33833596, 63167436, 47937495, 74858917, 23519501, 99965146, 67991530, 70253959, 46910392, 9449915, 3297143, 52784017, 62907606, 89737727, 32172351, 89420329, 65638925, 66164181, 52996049, 23938705, 46450541, 59280830, 31021153, 81922985, 33196492, 17643204, 14390294, 55878137, 880937, 3400599, 92739295, 85411967, 47354471, 73649507, 9177232, 81439091, 93365012, 31267697, 58365346, 61119945, 13723349, 46138550, 15739330, 25382259, 3283908, 77735188, 5347146, 73005772, 43473228, 29893467, 6781354, 70395000, 95658722, 28581526, 58640125, 11638653, 35333443, 28571698, 2284521, 31477784, 82910566, 45619949, 58845299, 4543727, 58967390, 65377396, 93603278, 96522125, 73073146, 98616116, 64178520, 18423327, 94355615, 27879180, 44080669, 15857980, 47683122, 66911746, 10204489, 69390935, 54131407, 73909555, 60634605, 10409105, 72549253, 96262826, 53383236, 79330079, 91455321, 72824573, 53364558, 53428168, 65988491, 90147506, 22104048, 75470194, 67474889, 4173969, 24568945, 3005914, 89158256, 75672092, 25977381, 81686438, 58017744, 69343998, 40503290, 4945545, 88438770, 81132079, 89452895, 91325884, 87552759, 42024177, 60041490, 19963506, 62670177, 67754821, 36734803, 39558705, 754557, 52857519, 99245558, 50932166, 7264320, 26677961, 87486305, 43169529, 11232773, 2920450, 72058400, 54533476, 26809752, 89477139, 52463429, 27198844, 38148855, 67488568, 94568722, 30136509, 61432009, 17907015, 64500060, 34174236, 28330356, 67503941, 12169151, 50617460, 97731461, 29523655, 334587, 18543105, 20451173, 95400818, 34591790, 2042902, 50880565, 27875644, 19275293, 77035455, 9179743, 52006256, 91499008, 87447926, 50018254, 68060002, 12141822, 34655772, 20941895, 54774870, 75870689, 16560883, 51540684, 29546870, 34845305, 30601364, 94114134, 17621814, 47326328, 53967643, 90595357, 67210487, 93279277, 38893183, 84185659, 82351806, 21570038, 42264535, 51361975, 9950928, 17159760, 60391711, 57624832, 77464040, 6383724, 26203492, 40982141, 34573178, 14245026, 79305407, 40258805, 68290605, 89296413, 60178466, 1832323, 6353713, 75234182, 30962062, 2816193, 10518441, 76858316, 84180887, 58860821, 38028908, 58559428, 15360607, 43970616, 59526843, 4998403, 13956871, 98347184, 12403710, 8239725, 86857688, 1177876, 87111455, 59518411, 75563005, 45769053, 36009490, 10427545, 56402693, 96240276, 69900643, 9531163, 54707908, 6123140, 63269531, 29955528, 37885794, 30325251, 21462543, 78201329, 14577568, 33142137, 51234062, 54703611, 93894304, 57343192, 47029850, 62084037, 66729187, 96712207, 43191680, 44675904, 41550820, 82506547, 53469206, 71010484, 88511054, 73179503, 7937637, 8885365, 38753904, 29782811, 3726501, 56639013, 98149427, 41590449, 42478328, 58750083, 35223926, 2914892, 41415725, 7694758, 86708514, 12069130, 15344315, 83374602, 68498749, 32661287, 78908300, 27046834, 8058468, 53052113, 43092160, 57521400, 23127691, 41189210, 14131292, 79507798, 14837765, 2243273, 62927077, 87934783, 94397750, 73615385, 60598905, 50703171, 13853858, 66079662, 66394543, 86222771, 88374085, 39860801, 32080910, 45660737, 12860129, 34756406, 79252115, 35360786, 18532166, 92027870, 22469055, 37932069, 18215726, 58760136, 72232992, 92052062, 74935686, 17820608, 15407881, 69003267, 79567567, 38360632}
list61 := []int{84132644, 5469898, 64964811, 52855612, 71835648, 66037842, 96619260, 4920751, 75675691, 87894175, 4099049, 66385290, 55610311, 19818490, 43168996, 19146022, 56822923, 21902576, 22890253, 97967501, 84353387, 64315107, 32650209, 42110303, 94023093, 68052802, 15619862, 94421293, 634227, 77639259, 33928970, 95492545, 92710338, 28996582, 56905484, 54892736, 23116923, 20549503, 14783750, 74517844, 41338245, 31622350, 40636055, 94865731, 72727755, 40383450, 96526036, 74873916, 42873385, 16248077, 1366555, 4895078, 78633919, 19759975, 88923373, 62908758, 10394245, 76254857, 19794831, 72474113, 61660644, 17396571, 90313620, 92599297, 36473555, 72834266, 10707390, 87435905, 35193462, 84554559, 43771061, 68946538, 66690372, 84783929, 5591780, 19546017, 85658762, 6569031, 97892481, 76925793, 78507067, 88801048, 27858380, 47662249, 41006865, 98079672, 50965012, 25315673, 42791057, 41796878, 13328370, 42326892, 85450822, 51728880, 66757466, 45015301, 13457825, 82660751, 18104318, 39933247, 81906268, 28305906, 30736747, 65055358, 67835916, 38117546, 21041659, 55741410, 17053631, 10568396, 9398015, 39064051, 49793102, 24623903, 24818749, 67751466, 18286044, 43412285, 69126326, 82794491, 57464456, 51503068, 38973524, 75861914, 20467309, 86916932, 80045380, 55052826, 37459426, 22803310, 52111447, 71252008, 73866288, 10411519, 60271279, 39338010, 47488981, 82593864, 24480425, 74811215, 27257094, 22072269, 30994308, 18528210, 99826856, 61231979, 31565866, 24966442, 61393936, 58954539, 34863588, 87055659, 15340577, 76862807, 21485387, 27090777, 19180599, 39776166, 76190567, 55851843, 53162811, 43949745, 25935876, 35466508, 54234707, 15408880, 60185895, 48142405, 18571320, 21467296, 63244327, 24509789, 34426834, 44179807, 51861433, 56436967, 12424716, 9741402, 60982451, 62429601, 69296138, 70829088, 72535053, 80963078, 41312477, 98155892, 16209335, 54424515, 7919684, 19484956, 4129373, 85222263, 47925458, 88500005, 40216159, 9535874, 61090958, 59965894, 79008184, 45877959, 92334116, 21544730, 99718270, 72197309, 43462356, 24972097, 48416571, 57909933, 26336012, 83327474, 3088868, 67412130, 37947541, 31229124, 7046699, 45590012, 16414642, 7395623, 26984459, 73576795, 6354268, 70698360, 44971763, 27468805, 93997620, 752937, 83317090, 24373257, 60049482, 33327066, 16696062, 22561776, 27653851, 60227752, 86009792, 2130744, 62405472, 27072294, 67666364, 89858424, 13930856, 74187721, 63916662, 12528862, 62358511, 47921546, 41100867, 22346894, 39672160, 47223490, 77679476, 98436281, 44752260, 9627613, 36962786, 90374825, 78160571, 93883360, 56599240, 68298483, 97824296, 33634055, 22370600, 24917599, 26476359, 45206555, 8655136, 39869476, 13225506, 4784679, 86815112, 61270420, 48807361, 3037439, 34771044, 62258490, 33225533, 23860708, 71731923, 95100996, 76190767, 98025225, 43041801, 20275329, 61996638, 62990622, 68558294, 77564579, 41759022, 58648433, 14777242, 1588346, 40198753, 58992660, 74827261, 96181858, 7949854, 46651629, 23863375, 90963908, 15431493, 97304699, 52442824, 63181432, 72108348, 42415524, 18694990, 55690341, 53029822, 98285309, 69893143, 32380047, 21211578, 66276323, 13767870, 2453580, 48309591, 32793420, 68856483, 6144865, 32493766, 14443307, 16558615, 56173364, 46851157, 76531929, 72510123, 69974007, 62739062, 74678951, 16086537, 99021589, 25885455, 56937378, 4489978, 60649569, 78615888, 2647557, 64643320, 46802274, 5060208, 52617399, 27228033, 17984602, 20410049, 10002884, 52047448, 49118954, 27172559, 77743658, 66508384, 49729558, 62387046, 63365051, 28587175, 72112685, 38120110, 33911020, 3572602, 32495422, 8643623, 76492500, 76597483, 7356010, 11285891, 18298965, 73230149, 16527596, 54463913, 13391623, 75671670, 53202182, 60871134, 99413657, 40638194, 88093741, 45892108, 89677287, 42571709, 8599376, 9650823, 3461853, 10210211, 82719297, 73314803, 83175887, 81356827, 66541224, 27386335, 53458610, 31938735, 77062829, 52219963, 4634629, 2195329, 45936189, 93510890, 63097827, 27608052, 87854353, 1742573, 76324965, 66505791, 52248896, 44098710, 23650860, 98924462, 3148221, 65419911, 88229491, 20391451, 38974763, 21350501, 31524785, 13361644, 64189671, 69383824, 59839749, 78479790, 56399470, 81085916, 40966319, 22287675, 75538701, 21560592, 29471715, 54937993, 61176636, 47933284, 84858932, 7418453, 90540350, 78863504, 26487050, 77011442, 95519924, 34086694, 65726862, 56730076, 9319798, 53837355, 53252839, 56388546, 95177490, 69839042, 20240175, 37086681, 7115103, 71551498, 98568891, 2797094, 10019, 85537833, 93458447, 63176054, 70707466, 57182344, 87554727, 45502054, 70426780, 181175, 21725128, 85741211, 61703292, 87972023, 95388471, 38766653, 78652121, 79363328, 97336147, 22982197, 38210608, 85294028, 60049214, 95046903, 73067912, 66689163, 470782, 39746703, 10433527, 26495376, 36072495, 29095885, 84750312, 70852951, 92427916, 86007297, 71529666, 12458207, 21355305, 71682655, 39569228, 62324359, 34842156, 10589119, 15876337, 18922082, 36989385, 64209688, 9367669, 91629134, 39869533, 44918443, 94719947, 83177336, 95689886, 14874242, 95808987, 34224310, 48081318, 87145050, 57525754, 11724879, 22815775, 402718, 94226692, 24864663, 39005657, 14230427, 57028517, 16906489, 51821569, 37421058, 52685309, 23708312, 2695711, 74225221, 36563206, 41865930, 32870492, 60867175, 58184109, 80027621, 29797585, 25832622, 34365688, 53984988, 28112988, 65527980, 1891847, 80840032, 65181710, 44930884, 71796859, 64034821, 2441213, 7656890, 66905367, 89424374, 86401199, 67833123, 5527158, 39249233, 38380954, 1579340, 33072040, 55270576, 36415874, 83618159, 49171476, 50073095, 38868537, 66197322, 75602022, 23642511, 31802337, 38032700, 21235374, 23274623, 54925864, 55821493, 67875293, 57711466, 6308749, 58797798, 4679205, 31827281, 21068405, 5164401, 49646525, 12436159, 30594186, 69931426, 72018679, 47136790, 28530557, 18469508, 53429438, 65441243, 69598888, 19127164, 33237966, 22176660, 86696667, 86609266, 29497640, 48155451, 81900720, 96078391, 46847249, 61858133, 61682810, 17184579, 38640384, 86445148, 30734982, 96195727, 59870892, 59735846, 7269449, 6223317, 79924624, 24935583, 76562453, 70432640, 17961711, 63455078, 87052186, 6582013, 91169571, 88185256, 55064048, 73411320, 89110024, 83103937, 70826561, 41951196, 70118473, 35419495, 92514522, 7378675, 46115174, 64795880, 37773469, 84201979, 60967345, 26279840, 80064528, 25987400, 62751516, 99092060, 6750975, 34851159, 8162228, 79934563, 21555282, 12130203, 20310282, 71524260, 44716818, 33934195, 22925605, 50427545, 60718677, 43020582, 55313071, 79102910, 12698349, 6501904, 6707954, 76828948, 42615514, 2490566, 44541224, 41909075, 69770918, 6235838, 49491072, 99723426, 75606587, 83740984, 41476545, 14251088, 67954626, 79409730, 33833596, 63167436, 47937495, 74858917, 23519501, 99965146, 67991530, 70253959, 46910392, 9449915, 3297143, 52784017, 62907606, 89737727, 32172351, 89420329, 65638925, 66164181, 52996049, 23938705, 46450541, 59280830, 31021153, 81922985, 33196492, 17643204, 14390294, 55878137, 880937, 3400599, 92739295, 85411967, 47354471, 73649507, 9177232, 81439091, 93365012, 31267697, 58365346, 61119945, 13723349, 46138550, 15739330, 25382259, 3283908, 77735188, 5347146, 73005772, 43473228, 29893467, 6781354, 70395000, 95658722, 28581526, 58640125, 11638653, 35333443, 28571698, 2284521, 31477784, 82910566, 45619949, 58845299, 4543727, 58967390, 65377396, 93603278, 96522125, 73073146, 98616116, 64178520, 18423327, 94355615, 27879180, 44080669, 15857980, 47683122, 66911746, 10204489, 69390935, 54131407, 73909555, 60634605, 10409105, 72549253, 96262826, 53383236, 79330079, 91455321, 72824573, 53364558, 53428168, 65988491, 90147506, 22104048, 75470194, 67474889, 4173969, 24568945, 3005914, 89158256, 75672092, 25977381, 81686438, 58017744, 69343998, 40503290, 4945545, 88438770, 81132079, 89452895, 91325884, 87552759, 42024177, 60041490, 19963506, 62670177, 67754821, 36734803, 39558705, 754557, 52857519, 99245558, 50932166, 7264320, 26677961, 87486305, 43169529, 11232773, 2920450, 72058400, 54533476, 26809752, 89477139, 52463429, 27198844, 38148855, 67488568, 94568722, 30136509, 61432009, 17907015, 64500060, 34174236, 28330356, 67503941, 12169151, 50617460, 97731461, 29523655, 334587, 18543105, 20451173, 95400818, 34591790, 2042902, 50880565, 27875644, 19275293, 77035455, 9179743, 52006256, 91499008, 87447926, 50018254, 68060002, 12141822, 34655772, 20941895, 54774870, 75870689, 16560883, 51540684, 29546870, 34845305, 30601364, 94114134, 17621814, 47326328, 53967643, 90595357, 67210487, 93279277, 38893183, 84185659, 82351806, 21570038, 42264535, 51361975, 9950928, 17159760, 60391711, 57624832, 77464040, 6383724, 26203492, 40982141, 34573178, 14245026, 79305407, 40258805, 68290605, 89296413, 60178466, 1832323, 6353713, 75234182, 30962062, 2816193, 10518441, 76858316, 84180887, 58860821, 38028908, 58559428, 15360607, 43970616, 59526843, 4998403, 13956871, 98347184, 12403710, 8239725, 86857688, 1177876, 87111455, 59518411, 75563005, 45769053, 36009490, 10427545, 56402693, 96240276, 69900643, 9531163, 54707908, 6123140, 63269531, 29955528, 37885794, 30325251, 21462543, 78201329, 14577568, 33142137, 51234062, 54703611, 93894304, 57343192, 47029850, 62084037, 66729187, 96712207, 43191680, 44675904, 41550820, 82506547, 53469206, 71010484, 88511054, 73179503, 7937637, 8885365, 38753904, 29782811, 3726501, 56639013, 98149427, 41590449, 42478328, 58750083, 35223926, 2914892, 41415725, 7694758, 86708514, 12069130, 15344315, 83374602, 68498749, 32661287, 78908300, 27046834, 8058468, 53052113, 43092160, 57521400, 23127691, 41189210, 14131292, 79507798, 14837765, 2243273, 62927077, 87934783, 94397750, 73615385, 60598905, 50703171, 13853858, 66079662, 66394543, 86222771, 88374085, 39860801, 32080910, 45660737, 12860129, 34756406, 79252115, 35360786, 18532166, 92027870, 22469055, 37932069, 18215726, 58760136, 72232992, 92052062, 74935686, 17820608, 15407881, 69003267, 79567567, 38360632}
compareCalculate(list6, list61, 590) //比较运算的效率
fmt.Println()
fmt.Println("接下来查找所有的第几大元素的效率比较")
compareCalculateWithAll(list, list1)
fmt.Println()
compareCalculateWithAll(list2, list21)
fmt.Println()
compareCalculateWithAll(list3, list31)
fmt.Println()
compareCalculateWithAll(list4, list41)
fmt.Println()
compareCalculateWithAll(list5, list51)
fmt.Println()
compareCalculateWithAll(list6, list61)
}
func compareCalculateWithAll(list []int, list1 []int) {
var times, charges int
for k := 1; k <= len(list); k++ {
_, time, charge := LomutoQuiteSelect(list, k)
//fmt.Println(fmt.Sprintf("当前第%d个小的元素是:%d", k, s))
times = times + time
charges = charges + charge
//fmt.Println()
}
fmt.Println(fmt.Sprintf("从第一大元素开始查找总共进行了%d次划分操作,实际进行交换的次数为:%d", times, charges))
times = 0
charges = 0
for k := len(list1); k >= 1; k-- {
_, time, _ := LomutoQuiteSelect(list1, k)
//fmt.Println(fmt.Sprintf("当前第%d个小的元素是:%d", k, s))
times = times + time
charges = charges + charge
//fmt.Println()
}
fmt.Println(fmt.Sprintf("从第一大元素开始查找总共进行了%d次划分操作,实际进行交换的次数为:%d", times, charges))
}
func compareCalculate(list []int, list1 []int, num int) {
var times, charges int
for k := 1; k <= num; k++ {
_, time, charge := LomutoQuiteSelect(list, k)
//fmt.Println(fmt.Sprintf("当前第%d个小的元素是:%d", k, s))
times = times + time
charges = charges + charge
//fmt.Println()
}
fmt.Println(fmt.Sprintf("从第一大元素开始查找总共进行了%d次划分操作,实际进行交换的次数为:%d", times, charges))
times = 0
charges = 0
for k := num; k >= 1; k-- {
_, time, _ := LomutoQuiteSelect(list1, k)
//fmt.Println(fmt.Sprintf("当前第%d个小的元素是:%d", k, s))
times = times + time
charges = charges + charge
//fmt.Println()
}
fmt.Println(fmt.Sprintf("从第一大元素开始查找总共进行了%d次划分操作,实际进行交换的次数为:%d", times, charges))
}