面试有关问题:给你一个文本文件,里面存储了一亿个QQ号,请用程序将其由小到大排序,汗呀!
面试问题:给你一个文本文件,里面存储了一亿个QQ号,请用程序将其由小到大排序,汗呀!..
面试问题:给你一个文本文件,里面存储了一亿个QQ号,请用程序将其由小到大排序,汗呀!..
求高手讲解思路!
还有其它问题:
比如Memcache的运行机制,它的工作原理它有什么优缺点!
现有一个库存100件的产品要进行秒杀,在秒杀过程中的秒杀人数远远超过库存,请问你将如何处理,应该注意什么问题!
请谈谈你对Mysql的优化的见解,或者说如果让你设计一个数据库,你将怎样设计并优化!
有高手吗,今天面试都自己认为都答得不太理想,求指教,还有下面的面试!
小弟的刚刚被裁员,本来就冬天,真的好冷啊!
------解决方案--------------------
排序的问题想不出来什么好办法,有没有更具体的限制条件,比如运行时间和内存?
如果都不限制直接sort函数就行,里面是用的快速排序法(quicksort),理论上的效率应该是最高的,况且人家是native code,怎么也比php代码里模拟一个排序算法快。
memcache的运行机制是使用职守进程开辟一块内存空间用来保存key/value数据,所有的请求和应用都共用这些数据。优点是存取速度快,适合用来缓存频繁读写的数据。缺点是占用内存,同时只能通过key检索,无法进行关系查询(SQL等)。
要保证原子操作,使用一定的锁机制防止多个请求同时操作一个数据造成效果与预期不符。
mysql数据库优化主要是索引和分表,为了性能可以为所有需要排序和检索的字段建立索引,并通过水平或垂直分表方式提高效率。
------解决方案--------------------
目的肯定不是让你投机,导入数据库,建索引导出,不过可以提一下
遍历一遍,将号码按大小,写入合适的文件。。。比如约定10万一个号码段
比如10,000,写在第0个文件,100,000,001,属于第1K个文件里面
排序每一个文件数据,拼接文件
排序的时候,如果文件较大,这里根据文件大小,大概能估计号码数量级的。。如果号码量少,可选择快排,否则,
创建一个10万的数组,再次遍历,arr[qqnum-i*100000]+1;
遍历数组,依数组值,增量写入号码即可
复杂度是O(n),O(nlogn)之间
------解决方案--------------------
这面试题有点眼熟啊,算法板块貌似讨论过,所以我回答用bitmap,空间换时间。
而且实际要做可能需要分段处理,比如5-7位的qq直接bit hash,7-10位的bit hash值 + 1000000
- PHP code
<?php set_time_limit(0); //5-7位qq $s = '0'; $s{9999999} = 1; $s{22334} = 1; $s{375345} = 1; $i = 10000; while(isset($s{$i})) { if($s{$i} == 1) echo "QQ:".$i."<br/>"; $i++; } ?> <br><font color="#e78608">------解决方案--------------------</font><br>
------解决方案--------------------

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Operasi cincang //Tetapkan nilai pada medan dalam jadual cincang. Mengembalikan 1 pada kejayaan dan 0 pada kegagalan. Jika jadual cincang tidak wujud, jadual akan dibuat dahulu dan kemudian nilai akan diberikan Jika medan sudah wujud, nilai lama akan ditimpa. $ret=$redis->hSet('user','realname','jetwu');//Dapatkan nilai medan yang ditentukan dalam jadual cincang. Jika jadual cincang tidak wujud, kembalikan palsu. $ret=$redis->hGet('user','rea

Dalam pembangunan web, kita selalunya perlu menggunakan teknologi caching untuk meningkatkan prestasi tapak web dan kelajuan tindak balas. Memcache ialah teknologi caching popular yang boleh menyimpan sebarang jenis data dan menyokong konkurensi tinggi dan ketersediaan tinggi. Artikel ini akan memperkenalkan cara menggunakan Memcache dalam pembangunan PHP dan memberikan contoh kod khusus. 1. Pasang Memcache Untuk menggunakan Memcache, pertama sekali kita perlu memasang sambungan Memcache pada pelayan. Dalam sistem pengendalian CentOS, anda boleh menggunakan arahan berikut

Laravel kini merupakan salah satu rangka kerja web PHP yang paling popular, menyediakan pembangun dengan banyak ciri dan komponen yang berkuasa, yang mana LaravelHash adalah salah satu daripadanya. LaravelHash ialah perpustakaan PHP untuk pencincangan kata laluan yang boleh digunakan untuk memastikan kata laluan selamat dan menjadikan data pengguna aplikasi anda lebih selamat. Dalam artikel ini, kita akan mempelajari cara LaravelHash berfungsi dan cara menggunakannya untuk mencincang dan mengesahkan kata laluan. Pengetahuan prasyarat dalam pembelajaran Lara

Kod ujian redis dalam artikel ini adalah berdasarkan persekitaran berikut: Sistem pengendalian: MacOS versi 64-bit: Redis5.0.764bit Mod operasi: mod mandiri Operasi bit redis operasi bit reids juga dipanggil operasi tatasusunan bit dan peta bit : SETBIT, GETBIT, BITCOUNT, dan BITTOP Untuk memanipulasi tatasusunan bit binari. Mari kita lihat pada gelombang contoh operasi asas sintaks SETBIT: SETBITkeyoffsetvalue ialah: command key offset 0/1 Arahan setbit digunakan untuk menulis nilai tetapan bit binari bagi ofset yang ditentukan dalam tatasusunan bit hanya dibenarkan Tulis 1 atau 0,

CentOS ialah pengedaran Linux yang berasal dari RHEL dan disusun mengikut peraturan kod sumber terbuka. Selain itu, ia mengekalkan keserasian fungsi dengan RHEL dan merupakan sistem pengendalian sumber terbuka percuma yang boleh digunakan dan diubah suai pengguna tanpa membayar yuran hak cipta. Jadi adakah CentOS membezakan antara 32-bit dan 64-bit dalam Linux. Sila lihat di bawah untuk mendapatkan butiran. CentOS membezakan antara 32-bit dan 64-bit!

Dengan perkembangan pesat Internet, semakin banyak aplikasi perlu menghadapi sejumlah besar permintaan serentak Bagaimana untuk meningkatkan keupayaan pemprosesan serentak aplikasi telah menjadi masalah yang perlu diselesaikan oleh pembangun. Antaranya, menggunakan teknologi caching Memcache untuk pengoptimuman konkurensi telah menjadi penyelesaian yang agak popular. Memcache ialah teknologi caching yang cekap sesuai untuk aplikasi web berskala besar, pangkalan data dan sistem teragih. Cirinya ialah menyimpan data dalam ingatan untuk mencapai operasi baca dan tulis berkelajuan tinggi. Semasa proses capaian data aplikasi web,

Dalam pembangunan PHP, menggunakan sistem caching Memcache boleh meningkatkan kecekapan membaca dan menulis data. Memcache ialah sistem caching berasaskan memori yang boleh cache data dalam ingatan untuk mengelakkan pembacaan dan penulisan pangkalan data yang kerap. Artikel ini akan memperkenalkan cara menggunakan Memcache dalam PHP untuk operasi membaca dan menulis data yang cekap, dan menyediakan contoh kod khusus. 1. Pasang dan konfigurasikan Memcache Mula-mula, anda perlu memasang sambungan Memcache pada pelayan. boleh lulus

PHP ialah bahasa pengaturcaraan yang sangat popular yang biasa digunakan untuk pembangunan aplikasi web sebelah pelayan. Memandangkan skala pengguna aplikasi web terus berkembang dan jumlah data terus meningkat, operasi caching dan pengisihan data yang cekap menjadi semakin penting. Memcache adalah alat yang sangat berguna dalam situasi ini. Artikel ini akan memperkenalkan cara menggunakan Memcache untuk mencapai operasi caching dan pengisihan data yang cekap dalam pembangunan PHP, dan menyediakan contoh kod khusus. Apa itu Memcache? Memcache adalah
