Sorting algorithms/Quicksort: Difference between revisions

Content added Content deleted
No edit summary
(→‎version 1: corrected a state name, added comments, ordered the state names. -- ~~~~)
Line 3,205:
 
do while $\==0; l=a.$; t=b.$; $=$-1
if t<2 then iterate
h=l+t-1
?=l+t%2
Line 3,219:
do j=j while j<=k & @.j<=p; end /*a tinie-tiny loop*/
do k=k by -1 while j <k & @.k>=p; end /*another tiny loop*/
if j>=k then leave
_=@.j; @.j=@.k; @.k=_
end /*forever*/
Line 3,225:
k=j-1; @.l=@.k; @.k=p
$=$+1
if j<=? then do; a.$=j; b.$=h-j+1; $=$+1; a.$=l; b.$=k-l; end
else do; a.$=l; b.$=k-l; $=$+1; a.$=j; b.$=h-j+1; end
end /*while $\==0*/
 
return
/*──────────────────────────────────GEN@ subroutine─────────────────────*/
gen@: @.=''; maxL=0 /*assign default value. for array.*/
@.1 =" Rivers that form part of a state's (USA) border " /*adj. later,*/
@.2 ='=' /*this value is expanded later. */
@.2 ='='
@.3 ="ChattahoocheePerdido River: Alabama, GeorgiaFlorida"
@.4 ="ColoradoChattahoochee River: ArizonaAlabama, Nevada, California, Baja California (Mexico)Georgia"
@.5 ="St. FrancisTennessee River: Arkansas Alabama, Kentucky, Mississippi, MissouriTennessee"
@.6 ="PoteauColorado River: Arizona, California, ArkansasNevada, OklahomaBaja California (Mexico)"
@.7 ="ByramMississippi River: Arkansas, Illinois, Iowa, Kentucky, Minnesota, Mississippi, ConnecticutMissouri, NewTennesse, Louisiana, YorkWisconsin"
@.8 ="PawcatuckSt. Francis River: ConnecticutArkansas, Rhode IslandMissouri"
@.9 ="PerdidoPoteau River: Florida Arkansas, AlabamaOklahoma"
@.10="St. MarysArkansas River: Florida Arkansas, GeorgiaOklahoma"
@.11="ChattoogaRed River: (Mississippi watershed): Arkasas, GeorgiaOklahoma, South CarolinaTexas"
@.12="TugalooByram River: Georgia Connecticut, SouthNew CarolinaYork"
@.13="SnakePawcatuck River: IdahoConnecticut, Washington,Rhode OregonIsland"
@.14="WabashDelaware River: Delaware, New Jersey, New IllinoisYork, IndianaPennsylvania"
@.15="OhioPotomac River: District of Illinois, IndianaColumbia, OhioMaryland, KentuckyVirginia, West Virginia"
@.16="DesSt. MoinesMarys River: Iowa Florida, MissouriGeorgia"
@.17="TennesseeChattooga River: KentuckyGeorgia, Tennessee, Mississippi,South AlabamaCarolina"
@.18="Big SandyTugaloo River: Kentucky Georgia, WestSouth VirginiaCarolina"
@.19="Tug ForkSavannah River: KentuckyGeorgia, West Virginia,South VirginiaCarolina"
@.20="MonumentSnake CreekRiver: Maine, New Brunswick (Canda)Idaho, Oregon, Washington"
@.21="St. CroixWabash River: Maine, New Brunswick (Canda)Illinois, Indiana"
@.22="PiscataquaOhio River: Maine Illinois, Indiana, Kentucky, Ohio, NewWest HampshireVirginia"
@.23="St.Great FrancisMiami River: (mouth only): MaineIndiana, Quebec (Canada)Ohio"
@.24="St.Des JohnMoines River: MaineIowa, Quebec (Canada)Missouri"
@.25="PocomokeBig Sioux River: MarylandIowa, VirginiaSouth Dakota"
@.26="PotomacMissouri River: Kansas, MarylandIowa, VirginiaMissouri, city of Washington (District of Columbia)Nebraska, WestSouth VirginiaDakota"
@.27="MontrealTug Fork River: MichiganKentucky, (upperVirginia, peninsula ),West WisconsinVirginia"
@.28="DetroitBig Sandy River: MichiganKentucky, OntarioWest (Canada)Virginia"
@.29="St. ClairPearl River: Michigan, Ontario (Canada) Louisiana, Mississippi"
@.30="St. MarysSabine River: Michigan, Ontario (Canada) Louisiana, Texas"
@.31="BruleMonument RiverCreek: Maine, New Brunswick Michigan, Wisconsin(Canda)"
@.32="MenomineeSt. Croix River: MichiganMaine, WisconsinNew Brunswick (Canda)"
@.33="PigeonPiscataqua River: MinnesotaMaine, OntarioNew (Canada)Hampshire"
@.34="RainySt. Francis River: MinnesotaMaine, OntarioQuebec (Canada)"
@.35="St. CroixJohn River: Minnesota Maine, WisconsinQuebec (Canada)"
@.36="St. LouisPocomoke River: Minnesota Maryland, WisconsinVirginia"
@.37="MississippiPalmer River: Minnesota, Wisconsin, Iowa, Illinois, Missouri, KentuckyMassachusetts, Tennesse, Arkansas, Mississippi,Rhode LouisianaIsland"
@.38="PearlRunnins River: Massachusetts, Rhode Mississippi, LouisianaIsland"
@.39="HallsMontreal StreamRiver: Michigan (upper New Hampshirepeninsula), CanadaWisconsin"
@.40="Salmon FallsDetroit River: New Hampshire Michigan, MaineOntario (Canada)"
@.41="ConnecticutSt. Clair River: New Hampshire Michigan, VermontOntario (Canada)"
@.42="HudsonSt. Marys River: (lower part only): New Jersey Michigan, NewOntario York(Canada)"
@.43="ArthurBrule KillRiver: New JerseyMichigan, New York (tidal strait)Wisconsin"
@.44="KillMenominee Van KullRiver: New JerseyMichigan, New York (tidal strait)Wisconsin"
@.5745="Bois de SiouxRed River: of the North: South Dakota, Minnesota, North Dakota"
@.45="Rio Grande: New Mexico, Texas, Tamaulipas (Mexico), Nuevo Leon (Mexico), Coahuila De Zaragoza (Mexico), Chihuahua (Mexico)"
@.46="NiagaraBois de Sioux River: Minnesota, North New YorkDakota, OntarioSouth (Canada)Dakota"
@.47="St. LawrencePigeon River: New York Minnesota, Ontario (Canada)"
@.48="DelawareRainy River: New York, Pennsylvania Minnesota, New Jersey,Ontario Delaware(Canada)"
@.49="CatawbaSt. Croix River: North CarolinaMinnesota, South CarolinaWisconsin"
@.50="RedSt. Louis River: of the North: North Dakota, Minnesota, Wisconsin"
@.51="GreatHalls Stream: Miami River (mouth only): New OhioHampshire, IndianaCanada"
@.52="ArkansasSalmon Falls River: New OklahomaHampshire, ArkansasMaine"
@.53="PalmerConnecticut River: New Rhode IslandHampshire, MassachusettsVermont"
@.54="RunninsArthur RiverKill: Rhode Island New Jersey, MassachusettsNew York (tidal strait)"
@.55="SavannahKill RiverVan Kull: South CarolinaNew Jersey, GeorgiaNew York (tidal strait)"
@.56="Big SiouxHudson River: (lower part only): New Jersey, New South Dakota, IowaYork"
@.4557="Rio Grande: New Mexico, Texas, Tamaulipas (Mexico), Nuevo Leon (Mexico), Coahuila De Zaragoza (Mexico), Chihuahua (Mexico)"
@.57="Bois de Sioux River: South Dakota, Minnesota, North Dakota"
@.58="MissouriNiagara River: South Dakota,New NebraskaYork, Iowa, Missouri,Ontario Kansas(Canada)"
@.59="SabineSt. Lawrence River: New York, Ontario Texas, Louisiana(Canada)"
@.60="RedPoultney River: (Mississippi watershed): Texas, Oklahoma New York, ArkansasVermont"
@.61="PoultneyCatawba River: Vermont North Carolina, NewSouth YorkCarolina"
@.62="Blackwater River: Virginia, North Carolina, Virginia"
@.63="Columbia River: WashingtonOregon, OregonWashington"
 
do highItem=1 while @.highItem\=='' /*find how many entries, and also*/
maxL=max(maxL,length(@.highItem)) /* find the maximum width entry.*/
end /*highItem*/
 
highItem=highItem-1 /*adjust highItem slightly. */
Line 3,307:
show@: widthH=length(highItem) /*maximum width of any line. */
 
do j=1 for highItem /*display each item in /*show eachthe array item.*/
say 'element' right(j,widthH) arg(1)':' @.j
end end/*j*/
 
say copies('█',maxL+widthH+22) /*showdisplay a separator line. */
return</lang>
'''output'''
Line 3,317:
element 1 before sort: ------------------------------------------------ Rivers that form part of a state's (USA) border -------------------------------------------------
element 2 before sort: ==================================================================================================================================================
element 3 before sort: ChattahoocheePerdido River: Alabama, GeorgiaFlorida
element 4 before sort: ColoradoChattahoochee River: ArizonaAlabama, Nevada, California, Baja California (Mexico)Georgia
element 5 before sort: St. FrancisTennessee River: Arkansas Alabama, Kentucky, Mississippi, MissouriTennessee
element 6 before sort: PoteauColorado River: Arizona, California, ArkansasNevada, OklahomaBaja California (Mexico)
element 7 before sort: ByramMississippi River: Arkansas, Illinois, Iowa, Kentucky, Minnesota, Mississippi, ConnecticutMissouri, NewTennesse, Louisiana, YorkWisconsin
element 8 before sort: PawcatuckSt. Francis River: ConnecticutArkansas, Rhode IslandMissouri
element 9 before sort: PerdidoPoteau River: Florida Arkansas, AlabamaOklahoma
element 10 before sort: St. MarysArkansas River: Florida Arkansas, GeorgiaOklahoma
element 11 before sort: ChattoogaRed River: (Mississippi watershed): Arkasas, GeorgiaOklahoma, South CarolinaTexas
element 12 before sort: TugalooByram River: Georgia Connecticut, SouthNew CarolinaYork
element 13 before sort: SnakePawcatuck River: IdahoConnecticut, Washington,Rhode OregonIsland
element 14 before sort: WabashDelaware River: Delaware, New Jersey, New IllinoisYork, IndianaPennsylvania
element 15 before sort: OhioPotomac River: District of Illinois, IndianaColumbia, OhioMaryland, KentuckyVirginia, West Virginia
element 16 before sort: DesSt. MoinesMarys River: Iowa Florida, MissouriGeorgia
element 17 before sort: TennesseeChattooga River: KentuckyGeorgia, Tennessee, Mississippi,South AlabamaCarolina
element 18 before sort: Big SandyTugaloo River: Kentucky Georgia, WestSouth VirginiaCarolina
element 19 before sort: Tug ForkSavannah River: KentuckyGeorgia, West Virginia,South VirginiaCarolina
element 20 before sort: MonumentSnake CreekRiver: Maine, New Brunswick (Canda)Idaho, Oregon, Washington
element 21 before sort: St. CroixWabash River: Maine, New Brunswick (Canda)Illinois, Indiana
element 22 before sort: PiscataquaOhio River: Maine Illinois, Indiana, Kentucky, Ohio, NewWest HampshireVirginia
element 23 before sort: St.Great FrancisMiami River: (mouth only): MaineIndiana, Quebec (Canada)Ohio
element 24 before sort: St.Des JohnMoines River: MaineIowa, Quebec (Canada)Missouri
element 25 before sort: PocomokeBig Sioux River: MarylandIowa, VirginiaSouth Dakota
element 26 before sort: PotomacMissouri River: Kansas, MarylandIowa, VirginiaMissouri, city of Washington (District of Columbia)Nebraska, WestSouth VirginiaDakota
element 27 before sort: MontrealTug Fork River: MichiganKentucky, (upperVirginia, peninsula ),West WisconsinVirginia
element 28 before sort: DetroitBig Sandy River: MichiganKentucky, OntarioWest (Canada)Virginia
element 29 before sort: St. ClairPearl River: Michigan, Ontario (Canada) Louisiana, Mississippi
element 30 before sort: St. MarysSabine River: Michigan, Ontario (Canada) Louisiana, Texas
element 31 before sort: BruleMonument RiverCreek: Maine, New Brunswick Michigan, Wisconsin(Canda)
element 32 before sort: MenomineeSt. Croix River: MichiganMaine, WisconsinNew Brunswick (Canda)
element 33 before sort: PigeonPiscataqua River: MinnesotaMaine, OntarioNew (Canada)Hampshire
element 34 before sort: RainySt. Francis River: MinnesotaMaine, OntarioQuebec (Canada)
element 35 before sort: St. CroixJohn River: Minnesota Maine, WisconsinQuebec (Canada)
element 36 before sort: St. LouisPocomoke River: Minnesota Maryland, WisconsinVirginia
element 37 before sort: MississippiPalmer River: Minnesota, Wisconsin, Iowa, Illinois, Missouri, KentuckyMassachusetts, Tennesse, Arkansas, Mississippi,Rhode LouisianaIsland
element 38 before sort: PearlRunnins River: Massachusetts, Rhode Mississippi, LouisianaIsland
element 39 before sort: HallsMontreal StreamRiver: Michigan (upper New Hampshirepeninsula), CanadaWisconsin
element 40 before sort: Salmon FallsDetroit River: New Hampshire Michigan, MaineOntario (Canada)
element 41 before sort: ConnecticutSt. Clair River: New Hampshire Michigan, VermontOntario (Canada)
element 42 before sort: HudsonSt. Marys River: (lower part only): New Jersey Michigan, NewOntario York(Canada)
element 43 before sort: ArthurBrule KillRiver: New JerseyMichigan, New York (tidal strait)Wisconsin
element 44 before sort: KillMenominee Van KullRiver: New JerseyMichigan, New York (tidal strait)Wisconsin
element 45 before sort: RioRed Grande:River of the North: New Mexico, Texas, Tamaulipas (Mexico), Nuevo Leon (Mexico), Coahuila De Zaragoza (Mexico)Minesota, ChihuahuaNorth (Mexico)Dakota
element 46 before sort: NiagaraBois de Sioux River: Minnesota, North New YorkDakota, OntarioSouth (Canada)Dakota
element 47 before sort: St. LawrencePigeon River: New York Minnesota, Ontario (Canada)
element 48 before sort: DelawareRainy River: New York, Pennsylvania Minnesota, New Jersey,Ontario Delaware(Canada)
element 49 before sort: CatawbaSt. Croix River: North CarolinaMinnesota, South CarolinaWisconsin
element 50 before sort: RedSt. Louis River: of the North: North Dakota, Minnesota, Wisconsin
element 51 before sort: GreatHalls Stream: Miami River (mouth only): New OhioHampshire, IndianaCanada
element 52 before sort: ArkansasSalmon Falls River: New OklahomaHampshire, ArkansasMaine
element 53 before sort: PalmerConnecticut River: New Rhode IslandHampshire, MassachusettsVermont
element 54 before sort: RunninsArthur RiverKill: Rhode Island New Jersey, MassachusettsNew York (tidal strait)
element 55 before sort: SavannahKill RiverVan Kull: South CarolinaNew Jersey, GeorgiaNew York (tidal strait)
element 56 before sort: Big SiouxHudson River: (lower part only): New Jersey, New South Dakota, IowaYork
element 57 before sort: BoisRio deGrande: Sioux River: South Dakota New Mexico, MinnesotaTexas, Tamaulipas (Mexico), Nuevo Leon (Mexico), Coahuila De Zaragoza (Mexico), NorthChihuahua Dakota(Mexico)
element 58 before sort: MissouriNiagara River: South Dakota,New NebraskaYork, Iowa, Missouri,Ontario Kansas(Canada)
element 59 before sort: SabineSt. Lawrence River: New York, Ontario Texas, Louisiana(Canada)
element 60 before sort: RedPoultney River: (Mississippi watershed): Texas, Oklahoma New York, ArkansasVermont
element 61 before sort: PoultneyCatawba River: Vermont North Carolina, NewSouth YorkCarolina
element 62 before sort: Blackwater River: Virginia, North Carolina, Virginia
element 63 before sort: Columbia River: WashingtonOregon, OregonWashington
██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
element 1 after sort: ------------------------------------------------ Rivers that form part of a state's (USA) border -------------------------------------------------
element 2 after sort: ==================================================================================================================================================
element 3 after sort: Arkansas River: OklahomaArkansas, ArkansasOklahoma
element 4 after sort: Arthur Kill: New Jersey, New York (tidal strait)
element 5 after sort: Big Sandy River: Kentucky, West Virginia
element 6 after sort: Big Sioux River: Iowa, South Dakota, Iowa
element 7 after sort: Blackwater River: Virginia, North Carolina, Virginia
element 8 after sort: Bois de Sioux River: South Dakota, Minnesota, North Dakota, South Dakota
element 9 after sort: Brule River: Michigan, Wisconsin
element 10 after sort: Byram River: Connecticut, New York
Line 3,392:
element 12 after sort: Chattahoochee River: Alabama, Georgia
element 13 after sort: Chattooga River: Georgia, South Carolina
element 14 after sort: Colorado River: Arizona, NevadaCalifornia, CaliforniaNevada, Baja California (Mexico)
element 15 after sort: Columbia River: WashingtonOregon, OregonWashington
element 16 after sort: Connecticut River: New Hampshire, Vermont
element 17 after sort: Delaware River: Delaware, New York, PennsylvaniaJersey, New JerseyYork, DelawarePennsylvania
element 18 after sort: Des Moines River: Iowa, Missouri
element 19 after sort: Detroit River: Michigan, Ontario (Canada)
element 20 after sort: Great Miami River (mouth only): OhioIndiana, IndianaOhio
element 21 after sort: Halls Stream: New Hampshire, Canada
element 22 after sort: Hudson River (lower part only): New Jersey, New York
element 23 after sort: Kill Van Kull: New Jersey, New York (tidal strait)
element 24 after sort: Menominee River: Michigan, Wisconsin
element 25 after sort: Mississippi River: MinnesotaArkansas, WisconsinIllinois, Iowa, IllinoisKentucky, MissouriMinnesota, KentuckyMississippi, TennesseMissouri, ArkansasTennesse, MississippiLouisiana, LouisianaWisconsin
element 26 after sort: Missouri River: South Dakota, NebraskaKansas, Iowa, Missouri, KansasNebraska, South Dakota
element 27 after sort: Montreal River: Michigan (upper peninsula ), Wisconsin
element 28 after sort: Monument Creek: Maine, New Brunswick (Canda)
element 29 after sort: Niagara River: New York, Ontario (Canada)
element 30 after sort: Ohio River: Illinois, Indiana, OhioKentucky, KentuckyOhio, West Virginia
element 31 after sort: Palmer River: Massachusetts, Rhode Island, Massachusetts
element 32 after sort: Pawcatuck River: Connecticut, Rhode Island
element 33 after sort: Pearl River: MississippiLouisiana, LouisianaMississippi
element 34 after sort: Perdido River: FloridaAlabama, AlabamaFlorida
element 35 after sort: Pigeon River: Minnesota, Ontario (Canada)
element 36 after sort: Piscataqua River: Maine, New Hampshire
element 37 after sort: Pocomoke River: Maryland, Virginia
element 38 after sort: Poteau River: Arkansas, Oklahoma
element 39 after sort: Potomac River: Maryland, Virginia, cityDistrict of WashingtonColumbia, (DistrictMaryland, of Columbia)Virginia, West Virginia
element 40 after sort: Poultney River: Vermont, New York, Vermont
element 41 after sort: Rainy River: Minnesota, Ontario (Canada)
element 42 after sort: Red River (Mississippi watershed): TexasArkasas, Oklahoma, ArkansasTexas
element 43 after sort: Red River of the North: Minnesota, North Dakota, Minnesota
element 44 after sort: Rio Grande: New Mexico, Texas, Tamaulipas (Mexico), Nuevo Leon (Mexico), Coahuila De Zaragoza (Mexico), Chihuahua (Mexico)
element 45 after sort: Runnins River: Massachusetts, Rhode Island, Massachusetts
element 46 after sort: Sabine River: TexasLouisiana, LouisianaTexas
element 47 after sort: Salmon Falls River: New Hampshire, Maine
element 48 after sort: Savannah River: Georgia, South Carolina, Georgia
element 49 after sort: Snake River: Idaho, WashingtonOregon, OregonWashington
element 50 after sort: St. Clair River: Michigan, Ontario (Canada)
element 51 after sort: St. Croix River: Maine, New Brunswick (Canda)
Line 3,438:
element 58 after sort: St. Marys River: Florida, Georgia
element 59 after sort: St. Marys River: Michigan, Ontario (Canada)
element 60 after sort: Tennessee River: KentuckyAlabama, TennesseeKentucky, Mississippi, AlabamaTennessee
element 61 after sort: Tug Fork River: Kentucky, West Virginia, West Virginia
element 62 after sort: Tugaloo River: Georgia, South Carolina
element 63 after sort: Wabash River: Illinois, Indiana