news 2026/7/16 18:19:45

从抽牌游戏看到的知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从抽牌游戏看到的知识

从二分排序看到的知识

大家都知道计算机排序有很多种,比如冒泡排序、快速排序、选择排序、希尔排序等,这么多排序方法,你真正掌握的到底有几个,每个人会根据自己对知识的掌握程度以及需求选择适合自己项目需求的排序方式。现在我想说的是二分治算法,可能大家都很熟悉或者在网上找到例子。你这样说的话,我 就不敢接受你的观点了。接下来我用实际的例子引导你的思想观念,看看你自己对二分治掌握到什么程度,你看下我的论文内容就知道了,希望对你的编程有帮助。

Everyone knows computer sorting have many kinds,for example,Bubble Sort、Quick Sort、Selection sort,Shell Sort。So many kinds of methods,how many you really controled?Such as Bubble Sort is used in science field and accepted by many programmers;QuickSort is a sort changed from Bubble Sort;Selection Sort is an simple and perceptual intution and Shell Sort is an kind of Inserting sort。Everyone can choose an sort according to their own mastery of knowledge and demand for their needs.Now what I want to explain is Binary sort,maybe you can say that it was so easy understanded or searched from the web,listened your concept,I want to say you are wrong。Now I will use example telling you my ideas and hope can be useful for you。

程序需求:

考虑排序一手扑克牌的背景,开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已经在手中的每张牌进行比较。拿在左手上的牌总是排好的,直到桌子上的牌被拿完。(不考率花色,自然数排序就可以)

import java.util.ArrayList;

import java.util.List;

public class paixu {

static int counts=0;//计算比较个数

public static List<Integer> binarySort(List<Integer> list,int num){

int high, low, mid;

low=0;//查找区间上界

high=list.size()-1;//查找区间下界

while(low<=high) {

counts++;

mid=(low+high)/2;//找中间值

if(num<list.get(mid)) {//如果待插入记录比中间记录小

high=mid-1;//插入点在低半区

}else {

low=mid+1;

}

}

list.add(low,num);//将待插入记录回填到正确位置

return list;

}

public static void method3(int n) {

List<Integer> list=new ArrayList<Integer>();//用来保存排好序列的数据

// int datas[]= {34,56,23,12,45,67,345};

int datas[]= {789,678,456,345,123,90,89,67,45,34};

for(int i=0;i<n;i++) {

// Random r=new Random();

// int num =r.nextInt(200);

if(list.size()==0) {

list.add(datas[i]);

counts++;

}else {

list=binarySort(list, datas[i]);

}

System.out.print("第"+list.size()+"次的排序结果为:");

for(int j=0;j<list.size();j++) {

System.out.print(list.get(j)+"\t");

}

System.out.println();

}

System.out.println("计算次数为:"+counts);

}

public static void main(String[] args) {

method3(10);

}

}

程序的思路就是用二分治的思想进行排序,但不同于原来的思想的是,原有的是对数字集合进行排序,我现在的做法是对已经排好的数字集合插入数据,并且要排序,因为前面的数据已经排好了,再插入新数据时只需要排序插入的数据即可。
————————————————
版权声明:本文为CSDN博主「piaoyiren」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/piaoyiren/article/details/112761152

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/16 18:15:54

杀戮尖塔2鸡煲流派全解析:10大玩法从入门到精通

杀戮尖塔2鸡煲流派深度解析&#xff1a;从入门到精通的10大玩法指南 作为一款深受玩家喜爱的卡牌策略游戏&#xff0c;《杀戮尖塔2》中的鸡煲&#xff08;机器人&#xff09;角色以其独特的充能机制和多样化的玩法吸引了大量玩家。本文将全面解析鸡煲的10大核心流派&#xff0c…

作者头像 李华
网站建设 2026/7/16 18:12:57

BilibiliDown:跨平台B站视频下载的终极解决方案

BilibiliDown&#xff1a;跨平台B站视频下载的终极解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bili…

作者头像 李华
网站建设 2026/7/16 18:12:38

鸿蒙 ArkTS 实战:Handmade Material Cabinet 从创作记录到状态反馈完整解析

鸿蒙 ArkTS 实战&#xff1a;Handmade Material Cabinet 从创作记录到状态反馈完整解析 前言 Handmade Material Cabinet 是一个面向 创作管理与灵感记录 的鸿蒙 ArkTS 小应用。记录创作条目、站点信息和提醒备注&#xff0c;适合日常创作复盘。 本文基于 entry/src/main/ets…

作者头像 李华