Fellow spinner Monty Panesar is likely to take the 34-year-old's place for the Boxing Day Test.
Australia have won the first three Tests to reclaim the Ashes and Swann was under pressure to hold his spot in the team, having claimed only seven wickets in this series at an average of 80.
"I know I'm making a decision for the right reasons," he said at Sunday's media conference.
"My body doesn't like playing five-day cricket any more and I don't feel like I can justify my spot in the team in the last stages of a game.
"As a spinner, that's when you need to come into your own.
"Me hanging around with a decision already made in my head wouldn't be right.
"It would be selfish for me to carry on."
Swann said he knew midway through the second Test in Adelaide that it was time to retire, but he delayed telling the team to make sure it was the right decision.
Despite mulling over it, Swann said he still struggled to tell England coach Andy Flower and captain Alastair Cook on Saturday.
He broke the news to the rest of the team on Sunday morning.
"It should have been a very easy conversation, but it actually made it doubly-hard just to sit down over a coffee and blurt it out," Swann said of his friendship with Cook.
Swann became a key member of the English team that had won the previous three Ashes series.
He said the best cricketing memory would be having his friend Mike Hussey caught at short leg at the Oval in 2009 to confirm England had won back the Ashes.
Swann played 60 Tests from 2008, taking 255 wickets at 29.96.
He was also a handy lower-order batsman, averaging 22 and boasting a top score of 85.
Swann wants to be remembered primarily as someone who loved playing the game.
"Since I got back (into the England team in 2008) I've treated every day like a lottery win ... because that's what it is," he said.
"It really annoys me when people out there take it for granted and get above their station ... it's the most privileged thing any man can do."
Swann said in hindsight he could have retired after the previous Ashes series in England earlier this year.
"Why didn't I stop then? I knew more or less that the time was coming up," he said.
"But I'd never forgive myself - we had the chance to potentially come out here and win four Ashes series on the bounce.
"It's easy to wish you'd gone out taking 10-for in your last game and being hoisted on people's shoulders."
Swann said his social media gaffe, where he apologised for comments after the Perth Test loss, had not helped prompt him to retire.
The Englishman received praise from his opposite number in the Australian team, Nathan Lyon.
"He's someone who I've looked up to a lot," said Lyon on the Cricket Australia website.
"His career stats stand for themselves. He's been an unbelievable spinner and someone who I watched pretty closely in my time.
"I'm sure he will be sorely missed in the England team but I wish him all the best in the future."
GRAEME SWANN'S INTERNATIONAL CRICKET CAREER
* DOB: 24/3/79
* International debut: one-dayer v South Africa, Jan 2000
* Test debut: v India, Dec 2008
* 60 Tests, 255 wickets at 29.96, 1370 runs at 22.09, highest score 85
* 79 one-dayers, 39 Twenty20 internationals
* v Australia: 18 Tests, 62 wickets at 39.98, 499 runs at 23.76
* This Ashes series: 7 wickets at 80.00, 36 runs at 7.20.